Details
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
index fae7602..c139cc9 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/engine/dao/DefaultSubscriptionDao.java
@@ -946,6 +946,8 @@ public class DefaultSubscriptionDao extends EntityDaoBase<SubscriptionBundleMode
it.remove();
}
}
+ // Set total ordering value of the fake dryRun event to make sure billing events are correctly ordererd
+ curDryRun.setTotalOrdering(events.get(events.size() - 1).getTotalOrdering() + 1);
events.add(curDryRun);
}
}
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/events/EventBase.java b/subscription/src/main/java/org/killbill/billing/subscription/events/EventBase.java
index de34a88..d80cfc1 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/events/EventBase.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/events/EventBase.java
@@ -24,7 +24,6 @@ import org.killbill.billing.subscription.events.user.ApiEvent;
public abstract class EventBase implements SubscriptionBaseEvent {
- private final long totalOrdering;
private final UUID uuid;
private final UUID subscriptionId;
private final DateTime createdDate;
@@ -33,6 +32,7 @@ public abstract class EventBase implements SubscriptionBaseEvent {
private final DateTime effectiveDate;
private final DateTime processedDate;
+ private long totalOrdering;
private long activeVersion;
private boolean isActive;
@@ -114,6 +114,11 @@ public abstract class EventBase implements SubscriptionBaseEvent {
this.isActive = true;
}
+ @Override
+ public void setTotalOrdering(final long totalOrdering) {
+ this.totalOrdering = totalOrdering;
+ }
+
//
// Really used for unit tests only as the sql implementation relies on date first and then event insertion
//
diff --git a/subscription/src/main/java/org/killbill/billing/subscription/events/SubscriptionBaseEvent.java b/subscription/src/main/java/org/killbill/billing/subscription/events/SubscriptionBaseEvent.java
index 990ba4f..ceb0211 100644
--- a/subscription/src/main/java/org/killbill/billing/subscription/events/SubscriptionBaseEvent.java
+++ b/subscription/src/main/java/org/killbill/billing/subscription/events/SubscriptionBaseEvent.java
@@ -34,6 +34,8 @@ public interface SubscriptionBaseEvent extends Comparable<SubscriptionBaseEvent>
public long getTotalOrdering();
+ public void setTotalOrdering(long totalOrdering);
+
public long getActiveVersion();
public void setActiveVersion(long activeVersion);