killbill-uncached

jaxrs: fix potential NPE in PaymentMethodJson Signed-off-by:

9/22/2014 8:54:34 AM

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
index 7117692..0482484 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PaymentMethodJson.java
@@ -52,7 +52,7 @@ public class PaymentMethodJson extends JsonBase {
                              @JsonProperty("accountId") final String accountId,
                              @JsonProperty("isDefault") final Boolean isDefault,
                              @JsonProperty("pluginName") final String pluginName,
-                             @JsonProperty("pluginInfo") final PaymentMethodPluginDetailJson pluginInfo,
+                             @JsonProperty("pluginInfo") @Nullable final PaymentMethodPluginDetailJson pluginInfo,
                              @JsonProperty("auditLogs") @Nullable final List<AuditLogJson> auditLogs) {
         super(auditLogs);
         this.externalKey = externalKey;
@@ -135,14 +135,15 @@ public class PaymentMethodJson extends JsonBase {
                         // N/A
                         return false;
                     }
+
                     @Override
                     public String getExternalPaymentMethodId() {
-                        return pluginInfo.getExternalPaymentId();
+                        return pluginInfo != null ? pluginInfo.getExternalPaymentId() : null;
                     }
 
                     @Override
                     public List<PluginProperty> getProperties() {
-                        if (pluginInfo.getProperties() != null) {
+                        if (pluginInfo != null && pluginInfo.getProperties() != null) {
                             final List<PluginProperty> result = new LinkedList<PluginProperty>();
                             for (final PluginPropertyJson cur : pluginInfo.getProperties()) {
                                 result.add(new PluginProperty(cur.getKey(), cur.getValue(), cur.getIsUpdatable()));