killbill-memoizeit

analytics: fix NPE in BusinessInvoiceDao After sanitizing

4/17/2013 5:22:50 PM

Details

diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceDao.java
index d407bd6..2e56de4 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/BusinessInvoiceDao.java
@@ -179,7 +179,10 @@ public class BusinessInvoiceDao extends BusinessAnalyticsDaoBase {
         deleteInvoicesAndInvoiceItemsForAccountInTransaction(transactional, account.getAccountRecordId(), account.getTenantRecordId(), context);
 
         for (final BusinessInvoiceModelDao businessInvoice : businessInvoices.keySet()) {
-            createInvoiceInTransaction(transactional, businessInvoice, businessInvoices.get(businessInvoice), context);
+            final Collection<BusinessInvoiceItemBaseModelDao> invoiceItems = businessInvoices.get(businessInvoice);
+            if (invoiceItems != null) {
+                createInvoiceInTransaction(transactional, businessInvoice, invoiceItems, context);
+            }
         }
     }
 
@@ -215,7 +218,7 @@ public class BusinessInvoiceDao extends BusinessAnalyticsDaoBase {
                                                                       final Collection<InvoiceItem> otherInvoiceItems,
                                                                       final Long accountRecordId,
                                                                       final Long tenantRecordId,
-                                                                      final ReportGroup reportGroup,
+                                                                      @Nullable final ReportGroup reportGroup,
                                                                       final TenantContext context) throws AnalyticsRefreshException {
         SubscriptionBundle bundle = null;
         // Subscription and bundle could be null for e.g. credits or adjustments