killbill-memoizeit

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/SubscriptionJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/SubscriptionJson.java
index 491815d..49fac27 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/SubscriptionJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/SubscriptionJson.java
@@ -395,10 +395,17 @@ public class SubscriptionJson extends JsonBase {
         this.priceOverrides = new ArrayList<PhasePriceOverrideJson>();
 
         String currentPhaseName = null;
+        String currentPlanName = null;
         for (final SubscriptionEvent subscriptionEvent : subscription.getSubscriptionEvents()) {
             this.events.add(new EventSubscriptionJson(subscriptionEvent, accountAuditLogs));
 
             if (currency != null) {
+
+                final Plan curPlan = subscriptionEvent.getNextPlan();
+                if (curPlan != null && (currentPlanName == null || !curPlan.getName().equals(currentPlanName))) {
+                    currentPlanName = curPlan.getName();
+                }
+
                 final PlanPhase curPlanPhase = subscriptionEvent.getNextPhase();
                 if (curPlanPhase == null || curPlanPhase.getName().equals(currentPhaseName)) {
                     continue;
@@ -407,7 +414,7 @@ public class SubscriptionJson extends JsonBase {
 
                 final BigDecimal fixedPrice = curPlanPhase.getFixed() != null ? curPlanPhase.getFixed().getPrice().getPrice(currency) : null;
                 final BigDecimal recurringPrice = curPlanPhase.getRecurring() != null ? curPlanPhase.getRecurring().getRecurringPrice().getPrice(currency) : null;
-                final PhasePriceOverrideJson phase = new PhasePriceOverrideJson(subscriptionEvent.getNextPlan().getName(), curPlanPhase.getName(), curPlanPhase.getPhaseType().toString(), fixedPrice, recurringPrice);
+                final PhasePriceOverrideJson phase = new PhasePriceOverrideJson(currentPlanName, curPlanPhase.getName(), curPlanPhase.getPhaseType().toString(), fixedPrice, recurringPrice);
                 priceOverrides.add(phase);
             }
         }