diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
index 74dabf6..c61ada1 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/JaxRsResourceBase.java
@@ -591,7 +591,7 @@ public abstract class JaxRsResourceBase implements JaxrsResource {
exception = createBillingException("This should never have happened!!!");
}
addExceptionToResponse(responseBuilder, exception);
- return uriBuilder.buildResponse(uriInfo, PaymentResource.class, "getPayment", payment.getId(), request);
+ return uriBuilder.buildResponse(responseBuilder, uriInfo, PaymentResource.class, "getPayment", payment.getId(), request);
}
private void addExceptionToResponse(final ResponseBuilder responseBuilder, final BillingExceptionJson exception) {
diff --git a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
index 6a2e8f6..13b0fa4 100644
--- a/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
+++ b/profiles/killbill/src/test/java/org/killbill/billing/jaxrs/TestPayment.java
@@ -122,6 +122,34 @@ public class TestPayment extends TestJaxrsBase {
}
@Test(groups = "slow")
+ public void testWithFailedPaymentAndWithoutFollowLocation() throws Exception {
+ final Account account = createAccountWithDefaultPaymentMethod();
+
+ mockPaymentProviderPlugin.makeNextPaymentFailWithError();
+
+ final PaymentTransaction authTransaction = new PaymentTransaction();
+ authTransaction.setAmount(BigDecimal.ONE);
+ authTransaction.setCurrency(account.getCurrency());
+ authTransaction.setTransactionType(TransactionType.AUTHORIZE.name());
+
+ final RequestOptions requestOptionsWithoutFollowLocation = RequestOptions.builder()
+ .withCreatedBy(createdBy)
+ .withReason(reason)
+ .withComment(comment)
+ .withFollowLocation(false)
+ .build();
+
+ try {
+ killBillClient.createPayment(account.getAccountId(), account.getPaymentMethodId(), authTransaction,
+ ImmutableMap.<String, String>of(), requestOptionsWithoutFollowLocation);
+ fail();
+ } catch (final KillBillClientException e) {
+ assertEquals(e.getResponse().getStatusCode(), 402);
+ assertEquals(e.getBillingException().getMessage(), "Payment decline by gateway. Error message: gatewayError");
+ }
+ }
+
+ @Test(groups = "slow")
public void testWithCanceledPayment() throws Exception {
final Account account = createAccountWithDefaultPaymentMethod();