Merge pull request #3 from crain/develop
Add null checks for tenant identifier
diff --git a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextCallable.java b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextCallable.java
index d473b24..139c1ff 100644
--- a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextCallable.java
+++ b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextCallable.java
@@ -9,6 +9,11 @@
private final Callable<V> delegate;
private final String tenantIdentifier;
+ DelegatingTenantContextCallable(Callable<V> delegate) {
+ this.delegate = delegate;
+ this.tenantIdentifier = null;
+ }
+
DelegatingTenantContextCallable(final Callable<V> delegate, final String tenantIdentifier) {
super();
this.delegate = delegate;
@@ -19,7 +24,9 @@
public V call() throws Exception {
try {
TenantContextHolder.clear();
- TenantContextHolder.setIdentifier(this.tenantIdentifier);
+ if(this.tenantIdentifier != null) {
+ TenantContextHolder.setIdentifier(this.tenantIdentifier);
+ }
return this.delegate.call();
} finally {
TenantContextHolder.clear();
diff --git a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextExecutor.java b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextExecutor.java
index 67e6322..1061822 100644
--- a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextExecutor.java
+++ b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextExecutor.java
@@ -41,10 +41,16 @@
}
private Runnable wrap(final Runnable task) {
- return new DelegatingTenantContextRunnable(task, TenantContextHolder.checkedGetIdentifier());
+ if(TenantContextHolder.identifier().isPresent()) {
+ return new DelegatingTenantContextRunnable(task, TenantContextHolder.checkedGetIdentifier());
+ }
+ return new DelegatingTenantContextRunnable(task);
}
private <T> Callable<T> wrap(final Callable<T> task) {
- return new DelegatingTenantContextCallable<>(task, TenantContextHolder.checkedGetIdentifier());
+ if(TenantContextHolder.identifier().isPresent()) {
+ return new DelegatingTenantContextCallable<>(task, TenantContextHolder.checkedGetIdentifier());
+ }
+ return new DelegatingTenantContextCallable<>(task);
}
}
diff --git a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextRunnable.java b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextRunnable.java
index e0471d1..37d8ba6 100644
--- a/src/main/java/io/mifos/core/async/core/DelegatingTenantContextRunnable.java
+++ b/src/main/java/io/mifos/core/async/core/DelegatingTenantContextRunnable.java
@@ -7,6 +7,11 @@
private final Runnable delegate;
private final String tenantIdentifier;
+ DelegatingTenantContextRunnable(final Runnable delegate) {
+ this.delegate = delegate;
+ this.tenantIdentifier = null;
+ }
+
DelegatingTenantContextRunnable(final Runnable delegate, final String tenantIdentifier) {
super();
this.delegate = delegate;
@@ -17,7 +22,9 @@
public void run() {
try {
TenantContextHolder.clear();
- TenantContextHolder.setIdentifier(this.tenantIdentifier);
+ if(this.tenantIdentifier != null) {
+ TenantContextHolder.setIdentifier(this.tenantIdentifier);
+ }
this.delegate.run();
} finally {
TenantContextHolder.clear();