killbill-aplcache

analytics: make BusinessInvoicePaymentRecorder idempotent Signed-off-by:

7/5/2012 5:16:52 PM

Details

diff --git a/analytics/src/main/java/com/ning/billing/analytics/BusinessInvoicePaymentRecorder.java b/analytics/src/main/java/com/ning/billing/analytics/BusinessInvoicePaymentRecorder.java
index 4904b80..6f7338d 100644
--- a/analytics/src/main/java/com/ning/billing/analytics/BusinessInvoicePaymentRecorder.java
+++ b/analytics/src/main/java/com/ning/billing/analytics/BusinessInvoicePaymentRecorder.java
@@ -101,6 +101,9 @@ public class BusinessInvoicePaymentRecorder {
         invoicePaymentSqlDao.inTransaction(new Transaction<Void, BusinessInvoicePaymentSqlDao>() {
             @Override
             public Void inTransaction(final BusinessInvoicePaymentSqlDao transactional, final TransactionStatus status) throws Exception {
+                // Delete the existing payment if it exists - this is to make the call idempotent
+                transactional.deleteInvoicePayment(payment.getId().toString());
+
                 // Create the bip record
                 final BusinessInvoicePayment invoicePayment = new BusinessInvoicePayment(
                         account.getExternalKey(),