Source:
<code>public void processSubscriptionStartRequestedDate(final RequestedSubscriptionInternalEvent transition, final InternalCallContext context) { final long dryRunNotificationTime = invoiceConfig.getDryRunNotificationSchedule(context).getMillis(); final boolean isInvoiceNotificationEnabled = dryRunNotificationTime > 0; if (!isInvoiceNotificationEnabled) { return; } final UUID accountId; try { accountId = subscriptionApi.getAccountIdFromSubscriptionId(transition.getSubscriptionId(), context); } catch (final SubscriptionBaseApiException e) { log.warn("Failed handling SubscriptionBase change.", new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, transition.getSubscriptionId().toString())); return; } try { final BillingEventSet billingEvents = billingApi.getBillingEventsForAccountAndUpdateAccountBCD(accountId, null, context); if (billingEvents.isEmpty()) { return; } final FutureAccountNotificationsBuilder notificationsBuilder = new FutureAccountNotificationsBuilder(); populateNextFutureDryRunNotificationDate(billingEvents, notificationsBuilder, context); final ImmutableAccountData account = accountApi.getImmutableAccountDataById(accountId, context); <START> commitInvoiceAndSetFutureNotifications(account, null, ImmutableSet.of(), notificationsBuilder.build(), context); <END> } catch (final SubscriptionBaseApiException e) { log.warn("Failed handling SubscriptionBase change.", new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, transition.getSubscriptionId().toString())); } catch (final AccountApiException e) { log.warn("Failed to retrieve BillingEvents for accountId='{}'", accountId, e); } catch (final CatalogApiException e) { log.warn("Failed to retrieve BillingEvents for accountId='{}'", accountId, e); } }</code><technical_language>Nit: signatures: void commitInvoiceAndSetFutureNotifications(final ImmutableAccountData account, final FutureAccountNotifications futureAccountNotifications, final InternalCallContext context); void commitInvoiceAndSetFutureNotifications(final ImmutableAccountData account, final InvoiceModelDao invoiceModelDao, final Set<InvoiceTrackingModelDao> trackingIds, final FutureAccountNotifications futureAccountNotifications, final InternalCallContext context);</technical_language>

Target:
public void processSubscriptionStartRequestedDate(final RequestedSubscriptionInternalEvent transition, final InternalCallContext context) { final long dryRunNotificationTime = invoiceConfig.getDryRunNotificationSchedule(context).getMillis(); final boolean isInvoiceNotificationEnabled = dryRunNotificationTime > 0; if (!isInvoiceNotificationEnabled) { return; } final UUID accountId; try { accountId = subscriptionApi.getAccountIdFromSubscriptionId(transition.getSubscriptionId(), context); } catch (final SubscriptionBaseApiException e) { log.warn("Failed handling SubscriptionBase change.", new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, transition.getSubscriptionId().toString())); return; } try { final BillingEventSet billingEvents = billingApi.getBillingEventsForAccountAndUpdateAccountBCD(accountId, null, context); if (billingEvents.isEmpty()) { return; } final FutureAccountNotificationsBuilder notificationsBuilder = new FutureAccountNotificationsBuilder(); populateNextFutureDryRunNotificationDate(billingEvents, notificationsBuilder, context); final ImmutableAccountData account = accountApi.getImmutableAccountDataById(accountId, context); commitInvoiceAndSetFutureNotifications(account, notificationsBuilder.build(), context); } catch (final SubscriptionBaseApiException e) { log.warn("Failed handling SubscriptionBase change.", new InvoiceApiException(ErrorCode.INVOICE_NO_ACCOUNT_ID_FOR_SUBSCRIPTION_ID, transition.getSubscriptionId().toString())); } catch (final AccountApiException e) { log.warn("Failed to retrieve BillingEvents for accountId='{}'", accountId, e); } catch (final CatalogApiException e) { log.warn("Failed to retrieve BillingEvents for accountId='{}'", accountId, e); } }