Details
diff --git a/payment/src/main/java/com/ning/billing/payment/core/PaymentMethodProcessor.java b/payment/src/main/java/com/ning/billing/payment/core/PaymentMethodProcessor.java
index 78fecf3..09e4a78 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/PaymentMethodProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/PaymentMethodProcessor.java
@@ -181,12 +181,12 @@ public class PaymentMethodProcessor extends ProcessorBase {
new Function<PaymentMethodModelDao, PaymentMethod>() {
@Override
public PaymentMethod apply(final PaymentMethodModelDao paymentMethodModelDao) {
- final PaymentMethodPlugin paymentMethodPlugin;
+ PaymentMethodPlugin paymentMethodPlugin = null;
try {
paymentMethodPlugin = pluginApi.getPaymentMethodDetail(paymentMethodModelDao.getAccountId(), paymentMethodModelDao.getId(), tenantContext);
- } catch (PaymentPluginApiException e) {
+ } catch (final PaymentPluginApiException e) {
log.warn("Unable to find payment method id " + paymentMethodModelDao.getId() + " in plugin " + pluginName);
- return null;
+ // We still want to return a payment method object, even though the plugin details are missing
}
return new DefaultPaymentMethod(paymentMethodModelDao, paymentMethodPlugin);
diff --git a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
index 4c6d3cc..561ab25 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/PaymentProcessor.java
@@ -174,12 +174,12 @@ public class PaymentProcessor extends ProcessorBase {
new Function<PaymentModelDao, Payment>() {
@Override
public Payment apply(final PaymentModelDao paymentModelDao) {
- final PaymentInfoPlugin pluginInfo;
+ PaymentInfoPlugin pluginInfo = null;
try {
pluginInfo = pluginApi.getPaymentInfo(paymentModelDao.getAccountId(), paymentModelDao.getId(), tenantContext);
} catch (final PaymentPluginApiException e) {
- log.warn("Unable to find payment id " + paymentModelDao.getId() + " in plugin " + pluginName);
- return null;
+ log.warn("Unable to find payment id " + paymentModelDao.getId() + " in plugin " + pluginName);
+ // We still want to return a payment object, even though the plugin details are missing
}
return fromPaymentModelDao(paymentModelDao, pluginInfo, internalTenantContext);
diff --git a/payment/src/main/java/com/ning/billing/payment/core/RefundProcessor.java b/payment/src/main/java/com/ning/billing/payment/core/RefundProcessor.java
index 827590f..98e78fe 100644
--- a/payment/src/main/java/com/ning/billing/payment/core/RefundProcessor.java
+++ b/payment/src/main/java/com/ning/billing/payment/core/RefundProcessor.java
@@ -326,15 +326,15 @@ public class RefundProcessor extends ProcessorBase {
new Function<RefundModelDao, Refund>() {
@Override
public Refund apply(final RefundModelDao refundModelDao) {
- final List<RefundInfoPlugin> refundInfoPlugins;
+ List<RefundInfoPlugin> refundInfoPlugins = null;
try {
refundInfoPlugins = pluginApi.getRefundInfo(refundModelDao.getAccountId(), refundModelDao.getId(), tenantContext);
} catch (final PaymentPluginApiException e) {
log.warn("Unable to find refund id " + refundModelDao.getId() + " in plugin " + pluginName);
- return null;
+ // We still want to return a refund object, even though the plugin details are missing
}
- final RefundInfoPlugin refundInfoPlugin = findRefundInfoPlugin(refundModelDao, refundInfoPlugins);
+ final RefundInfoPlugin refundInfoPlugin = refundInfoPlugins == null ? null : findRefundInfoPlugin(refundModelDao, refundInfoPlugins);
return new DefaultRefund(refundModelDao, refundInfoPlugin);
}
}