killbill-memoizeit

junction, invoice: improve logging Signed-off-by: Pierre-Alexandre

10/28/2016 10:34:12 AM

Details

diff --git a/invoice/src/main/java/org/killbill/billing/invoice/InvoiceDispatcher.java b/invoice/src/main/java/org/killbill/billing/invoice/InvoiceDispatcher.java
index 2a0f81b..de92b8a 100644
--- a/invoice/src/main/java/org/killbill/billing/invoice/InvoiceDispatcher.java
+++ b/invoice/src/main/java/org/killbill/billing/invoice/InvoiceDispatcher.java
@@ -247,13 +247,13 @@ public class InvoiceDispatcher {
             }
             return null;
         } catch (final CatalogApiException e) {
-            log.error("Failed handling SubscriptionBase change.", e);
+            log.warn("Failed to retrieve BillingEvents for accountId='{}', dryRunArguments='{}'", accountId, dryRunArguments, e);
             return null;
         } catch (final AccountApiException e) {
-            log.error("Failed handling SubscriptionBase change.", e);
+            log.warn("Failed to retrieve BillingEvents for accountId='{}', dryRunArguments='{}'", accountId, dryRunArguments, e);
             return null;
-        } catch (SubscriptionBaseApiException e) {
-            log.error("Failed handling SubscriptionBase change.", e);
+        } catch (final SubscriptionBaseApiException e) {
+            log.warn("Failed to retrieve BillingEvents for accountId='{}', dryRunArguments='{}'", accountId, dryRunArguments, e);
             return null;
         }
     }
@@ -697,5 +697,13 @@ public class InvoiceDispatcher {
         public List<PlanPhasePriceOverride> getPlanPhasePriceOverrides() {
             return null;
         }
+
+        @Override
+        public String toString() {
+            final StringBuilder sb = new StringBuilder("TargetDateDryRunArguments{");
+            sb.append("dryRunType=").append(DryRunType.TARGET_DATE);
+            sb.append('}');
+            return sb.toString();
+        }
     }
 }
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
index dcb2738..4ab2d67 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/InvoiceResource.java
@@ -1039,6 +1039,21 @@ public class InvoiceResource extends JaxRsResourceBase {
         public List<PlanPhasePriceOverride> getPlanPhasePriceOverrides() {
             return overrides;
         }
+
+        @Override
+        public String toString() {
+            final StringBuilder sb = new StringBuilder("DefaultDryRunArguments{");
+            sb.append("dryRunType=").append(dryRunType);
+            sb.append(", action=").append(action);
+            sb.append(", subscriptionId=").append(subscriptionId);
+            sb.append(", effectiveDate=").append(effectiveDate);
+            sb.append(", specifier=").append(specifier);
+            sb.append(", bundleId=").append(bundleId);
+            sb.append(", billingPolicy=").append(billingPolicy);
+            sb.append(", overrides=").append(overrides);
+            sb.append('}');
+            return sb.toString();
+        }
     }
 
 }
diff --git a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
index a5163b4..72950d7 100644
--- a/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
+++ b/junction/src/main/java/org/killbill/billing/junction/plumbing/billing/DefaultInternalBillingApi.java
@@ -87,21 +87,22 @@ public class DefaultInternalBillingApi implements BillingInternalApi {
 
     @Override
     public BillingEventSet getBillingEventsForAccountAndUpdateAccountBCD(final UUID accountId, final DryRunArguments dryRunArguments, final InternalCallContext context) throws CatalogApiException, SubscriptionBaseApiException, AccountApiException {
-        final List<SubscriptionBaseBundle> bundles = subscriptionApi.getBundlesForAccount(accountId, context);
         final StaticCatalog currentCatalog = catalogService.getCurrentCatalog(context);
-
-        final ImmutableAccountData account = accountApi.getImmutableAccountDataById(accountId, context);
-        final DefaultBillingEventSet result = new DefaultBillingEventSet(false, currentCatalog.getRecurringBillingMode(), context);
-
         final Set<UUID> skippedSubscriptions = new HashSet<UUID>();
+
         // Check to see if billing is off for the account
         final List<Tag> accountTags = tagApi.getTags(accountId, ObjectType.ACCOUNT, context);
         final boolean found_AUTO_INVOICING_OFF = is_AUTO_INVOICING_OFF(accountTags);
+        final DefaultBillingEventSet result;
         if (found_AUTO_INVOICING_OFF) {
-            return new DefaultBillingEventSet(true, currentCatalog.getRecurringBillingMode(), context); // billing is off, we are done
-        }
+            result = new DefaultBillingEventSet(true, currentCatalog.getRecurringBillingMode(), context); // billing is off, we are done
+        } else {
+            result = new DefaultBillingEventSet(false, currentCatalog.getRecurringBillingMode(), context);
 
-        addBillingEventsForBundles(bundles, account, dryRunArguments, context, result, skippedSubscriptions);
+            final ImmutableAccountData account = accountApi.getImmutableAccountDataById(accountId, context);
+            final List<SubscriptionBaseBundle> bundles = subscriptionApi.getBundlesForAccount(accountId, context);
+            addBillingEventsForBundles(bundles, account, dryRunArguments, context, result, skippedSubscriptions);
+        }
 
         // Pretty-print the events, before and after the blocking calculator does its magic
         final StringBuilder logStringBuilder = new StringBuilder("Computed billing events for accountId='").append(accountId).append("'");