diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/RepairEntitlementDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/RepairEntitlementDao.java
index 069a325..c9f2681 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/RepairEntitlementDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/RepairEntitlementDao.java
@@ -64,6 +64,20 @@ public class RepairEntitlementDao implements EntitlementDao, RepairEntitlementLi
return orderingId;
}
+ @Override
+ public String toString() {
+ StringBuilder tmp = new StringBuilder();
+ tmp.append("[");
+ tmp.append(event.getType());
+ tmp.append(": effDate=");
+ tmp.append(event.getEffectiveDate());
+ tmp.append(", subId=");
+ tmp.append(event.getSubscriptionId());
+ tmp.append(", ordering=");
+ tmp.append(event.getTotalOrdering());
+ tmp.append("]");
+ return tmp.toString();
+ }
}
private static final class SubscriptionRepairEvent {
@@ -82,7 +96,7 @@ public class RepairEntitlementDao implements EntitlementDao, RepairEntitlementLi
} else if (o1.getOrderingId() > o2.getOrderingId()) {
return 1;
} else {
- throw new RuntimeException("Repair entitlement events should not have the same orderingId");
+ throw new RuntimeException(String.format(" Repair entitlement events should not have the same orderingId %s, %s ", o1, o2));
}
}
return result;
diff --git a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
index 6ff4c51..e57df9b 100644
--- a/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
+++ b/entitlement/src/test/java/com/ning/billing/entitlement/api/timeline/TestRepairBP.java
@@ -692,6 +692,10 @@ public class TestRepairBP extends TestApiBaseRepair {
final BundleTimeline bRepair = createBundleRepair(bundle.getId(), bundleRepair.getViewId(), Collections.singletonList(sRepair));
final DateTime newChargedThroughDate = baseSubscription.getStartDate().plusDays(30).plusMonths(1);
+
+ // Move clock at least a sec to make sure the last_sys_update from bundle is different-- and therefore generates a different viewId
+ clock.setDeltaFromReality(1000);
+
billingApi.setChargedThroughDate(baseSubscription.getId(), newChargedThroughDate, context);
entitlementApi.getSubscriptionFromId(baseSubscription.getId());