diff --git a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
index 30c4c03..adc4669 100644
--- a/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
+++ b/payment/src/main/java/com/ning/billing/payment/api/DefaultPaymentApi.java
@@ -65,7 +65,12 @@ public class DefaultPaymentApi implements PaymentApi {
if (accountKey != null) {
final Account account = accountUserApi.getAccountByKey(accountKey);
- return getPaymentProviderPlugin(account);
+ if (account != null) {
+ return getPaymentProviderPlugin(account);
+ }
+ else {
+ throw new IllegalArgumentException("Did not find account with accountKey " + accountKey);
+ }
}
return pluginRegistry.getPlugin(paymentProviderName);
diff --git a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPluginRegistry.java b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPluginRegistry.java
index f7778d8..fc9c149 100644
--- a/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPluginRegistry.java
+++ b/payment/src/main/java/com/ning/billing/payment/provider/PaymentProviderPluginRegistry.java
@@ -38,6 +38,12 @@ public class PaymentProviderPluginRegistry {
}
public PaymentProviderPlugin getPlugin(String name) {
- return pluginsByName.get(StringUtils.defaultIfEmpty(name, defaultPlugin).toLowerCase());
+ PaymentProviderPlugin plugin = pluginsByName.get(StringUtils.defaultIfEmpty(name, defaultPlugin).toLowerCase());
+
+ if (plugin == null) {
+ throw new IllegalArgumentException("No payment provider plugin is configured for " + name);
+ }
+
+ return plugin;
}
}