diff --git a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
index 57a0d6e..edc38a1 100644
--- a/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
+++ b/beatrix/src/test/java/com/ning/billing/beatrix/integration/TestBusHandler.java
@@ -167,20 +167,22 @@ public class TestBusHandler {
private void assertEqualsNicely(NextEvent received) {
- boolean foundIt = false;
- Iterator<NextEvent> it = nextExpectedEvent.iterator();
- while (it.hasNext()) {
- NextEvent ev = it.next();
- if (ev == received) {
- it.remove();
- foundIt = true;
- break;
+ synchronized(this) {
+ boolean foundIt = false;
+ Iterator<NextEvent> it = nextExpectedEvent.iterator();
+ while (it.hasNext()) {
+ NextEvent ev = it.next();
+ if (ev == received) {
+ it.remove();
+ foundIt = true;
+ break;
+ }
+ }
+ if (!foundIt) {
+ Joiner joiner = Joiner.on(" ");
+ log.error("TestBusHandler Received event " + received + "; expected " + joiner.join(nextExpectedEvent));
+ Assert.fail();
}
- }
- if (!foundIt) {
- Joiner joiner = Joiner.on(" ");
- log.error("TestBusHandler Received event " + received + "; expected " + joiner.join(nextExpectedEvent));
- Assert.fail();
}
}
}
diff --git a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
index 3b27fa6..9b475d1 100644
--- a/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
+++ b/invoice/src/main/java/com/ning/billing/invoice/dao/DefaultInvoiceDao.java
@@ -28,13 +28,11 @@ import org.joda.time.DateTime;
import org.skife.jdbi.v2.IDBI;
import org.skife.jdbi.v2.Transaction;
import org.skife.jdbi.v2.TransactionStatus;
-import org.skife.jdbi.v2.sqlobject.mixins.Transmogrifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
import com.ning.billing.entitlement.api.billing.EntitlementBillingApi;
-import com.ning.billing.invoice.api.DefaultInvoiceService;
import com.ning.billing.invoice.api.Invoice;
import com.ning.billing.invoice.api.InvoiceCreationNotification;
import com.ning.billing.invoice.api.InvoiceItem;
@@ -42,13 +40,8 @@ import com.ning.billing.invoice.api.InvoicePayment;
import com.ning.billing.invoice.api.user.DefaultInvoiceCreationNotification;
import com.ning.billing.invoice.model.FixedPriceInvoiceItem;
import com.ning.billing.invoice.model.RecurringInvoiceItem;
-import com.ning.billing.invoice.notification.DefaultNextBillingDateNotifier;
import com.ning.billing.invoice.notification.NextBillingDatePoster;
import com.ning.billing.util.bus.Bus;
-import com.ning.billing.util.notificationq.NotificationKey;
-import com.ning.billing.util.notificationq.NotificationQueue;
-import com.ning.billing.util.notificationq.NotificationQueueService;
-import com.ning.billing.util.notificationq.NotificationQueueService.NoSuchNotificationQueue;
public class DefaultInvoiceDao implements InvoiceDao {
private final static Logger log = LoggerFactory.getLogger(DefaultInvoiceDao.class);
@@ -174,17 +167,22 @@ public class DefaultInvoiceDao implements InvoiceDao {
List<InvoicePayment> invoicePayments = invoice.getPayments();
InvoicePaymentSqlDao invoicePaymentSqlDao = invoiceDao.become(InvoicePaymentSqlDao.class);
invoicePaymentSqlDao.batchCreateFromTransaction(invoicePayments);
-
- InvoiceCreationNotification event;
- event = new DefaultInvoiceCreationNotification(invoice.getId(), invoice.getAccountId(),
- invoice.getBalance(), invoice.getCurrency(),
- invoice.getInvoiceDate());
- eventBus.postFromTransaction(event, invoiceDao);
}
return null;
}
});
+
+ // TODO: move this inside the transaction once the bus is persistent
+ InvoiceCreationNotification event;
+ event = new DefaultInvoiceCreationNotification(invoice.getId(), invoice.getAccountId(),
+ invoice.getBalance(), invoice.getCurrency(),
+ invoice.getInvoiceDate());
+ try {
+ eventBus.post(event);
+ } catch (Bus.EventBusException e) {
+ throw new RuntimeException(e);
+ }
}
@Override