killbill-memoizeit

analytics: fix tenant_record_id when multi-tenancy is off The

4/18/2013 3:18:30 PM

Details

diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/BusinessAnalyticsBase.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/BusinessAnalyticsBase.java
index 6e50c88..eee2f51 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/BusinessAnalyticsBase.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/BusinessAnalyticsBase.java
@@ -84,9 +84,16 @@ public abstract class BusinessAnalyticsBase {
     // TENANT
     //
 
+    private static final long INTERNAL_TENANT_RECORD_ID = 0L;
+
     protected Long getTenantRecordId(final TenantContext context) throws AnalyticsRefreshException {
-        final RecordIdApi recordIdUserApi = getRecordIdUserApi();
-        return recordIdUserApi.getRecordId(context.getTenantId(), ObjectType.TENANT, context);
+        // See convention in InternalCallContextFactory
+        if (context.getTenantId() == null) {
+            return INTERNAL_TENANT_RECORD_ID;
+        } else {
+            final RecordIdApi recordIdUserApi = getRecordIdUserApi();
+            return recordIdUserApi.getRecordId(context.getTenantId(), ObjectType.TENANT, context);
+        }
     }
 
     //
diff --git a/util/src/main/java/com/ning/billing/util/callcontext/InternalCallContextFactory.java b/util/src/main/java/com/ning/billing/util/callcontext/InternalCallContextFactory.java
index 450d29b..4c03231 100644
--- a/util/src/main/java/com/ning/billing/util/callcontext/InternalCallContextFactory.java
+++ b/util/src/main/java/com/ning/billing/util/callcontext/InternalCallContextFactory.java
@@ -220,6 +220,7 @@ public class InternalCallContextFactory {
 
     private Long getTenantRecordId(final TenantContext context) {
         // Default to single default tenant (e.g. single tenant mode)
+        // TODO Extract this convention (e.g. BusinessAnalyticsBase needs to know about it)
         if (context.getTenantId() == null) {
             return INTERNAL_TENANT_RECORD_ID;
         } else {