killbill-memoizeit

entitlement: Fixes #429

1/28/2016 1:19:08 AM

Details

diff --git a/api/src/main/java/org/killbill/billing/junction/DefaultBlockingState.java b/api/src/main/java/org/killbill/billing/junction/DefaultBlockingState.java
index b548665..ccd2170 100644
--- a/api/src/main/java/org/killbill/billing/junction/DefaultBlockingState.java
+++ b/api/src/main/java/org/killbill/billing/junction/DefaultBlockingState.java
@@ -43,7 +43,7 @@ public class DefaultBlockingState extends EntityBase implements BlockingState {
     private final BlockingStateType type;
     private final Long totalOrdering;
 
-    public static BlockingState getClearState(final BlockingStateType type, final String serviceName, final Clock clock) {
+    public static BlockingState getOverdueClearState(final BlockingStateType type, final String serviceName, final Clock clock) {
         if (clearState == null) {
             clearState = new DefaultBlockingState(null, type, CLEAR_STATE_NAME, serviceName, false, false, false, clock.getUTCNow());
         }
diff --git a/entitlement/src/main/java/org/killbill/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java b/entitlement/src/main/java/org/killbill/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
index 971786e..9259c5d 100644
--- a/entitlement/src/main/java/org/killbill/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
+++ b/entitlement/src/main/java/org/killbill/billing/entitlement/api/svcs/DefaultInternalBlockingApi.java
@@ -21,6 +21,7 @@ import java.util.UUID;
 
 import org.killbill.billing.callcontext.InternalCallContext;
 import org.killbill.billing.callcontext.InternalTenantContext;
+import org.killbill.billing.overdue.OverdueService;
 import org.killbill.clock.Clock;
 import org.killbill.billing.entitlement.api.BlockingState;
 import org.killbill.billing.entitlement.api.BlockingStateType;
@@ -47,8 +48,8 @@ public class DefaultInternalBlockingApi implements BlockingInternalApi {
     @Override
     public BlockingState getBlockingStateForService(final UUID overdueableId, final BlockingStateType blockingStateType, final String serviceName, final InternalTenantContext context) {
         final BlockingState blockingStateForService = dao.getBlockingStateForService(overdueableId, blockingStateType, serviceName, context);
-        if (blockingStateForService == null) {
-            return DefaultBlockingState.getClearState(blockingStateType, serviceName, clock);
+        if (blockingStateForService == null && serviceName.equals(OverdueService.OVERDUE_SERVICE_NAME)) {
+            return DefaultBlockingState.getOverdueClearState(blockingStateType, serviceName, clock);
         } else {
             return blockingStateForService;
         }
diff --git a/overdue/src/test/java/org/killbill/billing/overdue/glue/TestOverdueModule.java b/overdue/src/test/java/org/killbill/billing/overdue/glue/TestOverdueModule.java
index 142f39d..c0131ee 100644
--- a/overdue/src/test/java/org/killbill/billing/overdue/glue/TestOverdueModule.java
+++ b/overdue/src/test/java/org/killbill/billing/overdue/glue/TestOverdueModule.java
@@ -95,7 +95,7 @@ public class TestOverdueModule extends DefaultOverdueModule {
             if (blockingState != null && blockingState.getBlockedId().equals(blockableId)) {
                 return blockingState;
             } else {
-                return DefaultBlockingState.getClearState(blockingStateType, serviceName, new ClockMock());
+                return DefaultBlockingState.getOverdueClearState(blockingStateType, serviceName, new ClockMock());
             }
         }