killbill-aplcache

util: always redirect bus events and notifications to RW DB

4/26/2018 10:45:36 AM

Details

diff --git a/util/src/main/java/org/killbill/billing/util/glue/KillbillApiAopModule.java b/util/src/main/java/org/killbill/billing/util/glue/KillbillApiAopModule.java
index 80abe6d..ee00d42 100644
--- a/util/src/main/java/org/killbill/billing/util/glue/KillbillApiAopModule.java
+++ b/util/src/main/java/org/killbill/billing/util/glue/KillbillApiAopModule.java
@@ -124,7 +124,10 @@ public class KillbillApiAopModule extends AbstractModule {
     }
 
     public static Boolean getDirtyDBFlag() {
-        return perThreadDirtyDBFlag.get() == Boolean.TRUE;
+        // If unset, we don't come from an API call (i.e. through KillbillApiAopModule): could be bus events for instance.
+        // In that case, for safety, always go to the RW instance.
+        return perThreadDirtyDBFlag.get() == null ||
+               perThreadDirtyDBFlag.get() == Boolean.TRUE;
     }
 
     private static final Matcher<Method> SYNTHETIC_METHOD_MATCHER = new Matcher<Method>() {