killbill-memoizeit

beatrix: fix ClassCastException Reported-by: Nitin Singh

12/2/2013 9:28:51 AM

Details

diff --git a/api/src/main/java/com/ning/billing/events/BusInternalEvent.java b/api/src/main/java/com/ning/billing/events/BusInternalEvent.java
index 0a798ad..6867096 100644
--- a/api/src/main/java/com/ning/billing/events/BusInternalEvent.java
+++ b/api/src/main/java/com/ning/billing/events/BusInternalEvent.java
@@ -38,6 +38,7 @@ public interface BusInternalEvent extends BusEvent {
         INVOICE_EMPTY,
         OVERDUE_CHANGE,
         PAYMENT_ERROR,
+        PAYMENT_PLUGIN_ERROR,
         PAYMENT_INFO,
         SUBSCRIPTION_TRANSITION,
         USER_TAGDEFINITION_CREATION,
diff --git a/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java b/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
index ea3db2d..b21288c 100644
--- a/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
+++ b/beatrix/src/main/java/com/ning/billing/beatrix/extbus/BeatrixListener.java
@@ -48,6 +48,7 @@ import com.ning.billing.events.InvoiceCreationInternalEvent;
 import com.ning.billing.events.OverdueChangeInternalEvent;
 import com.ning.billing.events.PaymentErrorInternalEvent;
 import com.ning.billing.events.PaymentInfoInternalEvent;
+import com.ning.billing.events.PaymentPluginErrorInternalEvent;
 import com.ning.billing.events.SubscriptionInternalEvent;
 import com.ning.billing.events.UserTagCreationInternalEvent;
 import com.ning.billing.events.UserTagDeletionInternalEvent;
@@ -182,6 +183,13 @@ public class BeatrixListener {
                 eventBusType = ExtBusEventType.PAYMENT_FAILED;
                 break;
 
+            case PAYMENT_PLUGIN_ERROR:
+                PaymentPluginErrorInternalEvent realEventPayPluginErr = (PaymentPluginErrorInternalEvent) event;
+                objectType = ObjectType.PAYMENT;
+                objectId = realEventPayPluginErr.getPaymentId();
+                eventBusType = ExtBusEventType.PAYMENT_FAILED;
+                break;
+
             case OVERDUE_CHANGE:
                 OverdueChangeInternalEvent realEventOC = (OverdueChangeInternalEvent) event;
                 objectType = ObjectType.ACCOUNT;
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
index 5ca3936..f464200 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
@@ -61,6 +61,7 @@ import com.ning.billing.events.InvoiceCreationInternalEvent;
 import com.ning.billing.events.NullInvoiceInternalEvent;
 import com.ning.billing.events.PaymentErrorInternalEvent;
 import com.ning.billing.events.PaymentInfoInternalEvent;
+import com.ning.billing.events.PaymentPluginErrorInternalEvent;
 import com.ning.billing.jaxrs.json.CustomFieldJson;
 import com.ning.billing.jaxrs.json.SubscriptionJson;
 import com.ning.billing.jaxrs.util.Context;
@@ -341,6 +342,12 @@ public class SubscriptionResource extends JaxRsResourceBase {
             log.info(String.format("Got event PaymentError token = %s ", event.getUserToken()));
             notifyForCompletion();
         }
+
+        @Override
+        public void onPaymentPluginError(final PaymentPluginErrorInternalEvent event) {
+            log.info(String.format("Got event PaymentPluginError token = %s ", event.getUserToken()));
+            notifyForCompletion();
+        }
     }
 
     private interface EntitlementCallCompletionCallback<T> {
diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentPluginErrorEvent.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentPluginErrorEvent.java
index db409b7..29372a2 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentPluginErrorEvent.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentPluginErrorEvent.java
@@ -65,7 +65,7 @@ public class DefaultPaymentPluginErrorEvent extends BusEventBase implements Paym
     @JsonIgnore
     @Override
     public BusInternalEventType getBusEventType() {
-        return BusInternalEventType.PAYMENT_ERROR;
+        return BusInternalEventType.PAYMENT_PLUGIN_ERROR;
     }
 
     @Override
diff --git a/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestBase.java b/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestBase.java
index 84a5e3a..7d6c11c 100644
--- a/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestBase.java
+++ b/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestBase.java
@@ -29,6 +29,7 @@ import com.ning.billing.events.InvoiceCreationInternalEvent;
 import com.ning.billing.events.NullInvoiceInternalEvent;
 import com.ning.billing.events.PaymentErrorInternalEvent;
 import com.ning.billing.events.PaymentInfoInternalEvent;
+import com.ning.billing.events.PaymentPluginErrorInternalEvent;
 
 public class CompletionUserRequestBase implements CompletionUserRequest {
 
@@ -123,6 +124,9 @@ public class CompletionUserRequestBase implements CompletionUserRequest {
             case PAYMENT_ERROR:
                 onPaymentError((PaymentErrorInternalEvent) curEvent);
                 break;
+            case PAYMENT_PLUGIN_ERROR:
+                onPaymentPluginError((PaymentPluginErrorInternalEvent) curEvent);
+                break;
             default:
                 throw new RuntimeException("Unexpected event type " + curEvent.getBusEventType());
         }
@@ -157,4 +161,7 @@ public class CompletionUserRequestBase implements CompletionUserRequest {
     public void onPaymentError(final PaymentErrorInternalEvent curEvent) {
     }
 
+    @Override
+    public void onPaymentPluginError(final PaymentPluginErrorInternalEvent curEvent) {
+    }
 }
diff --git a/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestWaiter.java b/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestWaiter.java
index 99b34dc..898ad3e 100644
--- a/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestWaiter.java
+++ b/util/src/main/java/com/ning/billing/util/userrequest/CompletionUserRequestWaiter.java
@@ -27,6 +27,7 @@ import com.ning.billing.events.InvoiceCreationInternalEvent;
 import com.ning.billing.events.NullInvoiceInternalEvent;
 import com.ning.billing.events.PaymentErrorInternalEvent;
 import com.ning.billing.events.PaymentInfoInternalEvent;
+import com.ning.billing.events.PaymentPluginErrorInternalEvent;
 
 public interface CompletionUserRequestWaiter {
 
@@ -45,4 +46,6 @@ public interface CompletionUserRequestWaiter {
     public void onPaymentInfo(final PaymentInfoInternalEvent curEvent);
 
     public void onPaymentError(final PaymentErrorInternalEvent curEvent);
+
+    public void onPaymentPluginError(final PaymentPluginErrorInternalEvent curEvent);
 }