killbill-memoizeit

Details

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 f72d061..6f065ec 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
@@ -39,13 +39,11 @@ public class InternalCallContextFactory {
     public static final long INTERNAL_TENANT_RECORD_ID = 0L;
 
     private final IDBI dbi;
-    private final CallContextSqlDao callContextSqlDao;
     private final Clock clock;
 
     @Inject
     public InternalCallContextFactory(final IDBI dbi, final Clock clock) {
         this.dbi = dbi;
-        this.callContextSqlDao = dbi.onDemand(CallContextSqlDao.class);
         this.clock = clock;
     }
 
@@ -215,7 +213,9 @@ public class InternalCallContextFactory {
         if (context.getTenantId() == null) {
             return INTERNAL_TENANT_RECORD_ID;
         } else {
-            return callContextSqlDao.getTenantRecordId(context.getTenantId().toString());
+            // We call onDemand here to avoid JDBI opening connections in the constructor.
+            // TODO should we cache it?
+            return dbi.onDemand(CallContextSqlDao.class).getTenantRecordId(context.getTenantId().toString());
         }
     }