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("'");