ReactiveCouchbaseTemplate can overwrite PseudoArgs. (#1685)
* ReactiveCouchbaseTemplate can overwrite PseudoArgs under heavy concurrency. Raised as issue #1684 * Added author
This commit is contained in:
@@ -45,6 +45,7 @@ import com.couchbase.client.java.query.QueryScanConsistency;
|
||||
* @author Jorge Rodriguez Martin
|
||||
* @author Carlos Espinaco
|
||||
* @author Tigran Babloyan
|
||||
* @author Andy Toone
|
||||
*/
|
||||
public class ReactiveCouchbaseTemplate implements ReactiveCouchbaseOperations, ApplicationContextAware {
|
||||
|
||||
@@ -251,7 +252,14 @@ public class ReactiveCouchbaseTemplate implements ReactiveCouchbaseOperations, A
|
||||
* set the ThreadLocal field
|
||||
*/
|
||||
public void setPseudoArgs(PseudoArgs<?> threadLocalArgs) {
|
||||
this.threadLocalArgs = new ThreadLocal<>();
|
||||
if (this.threadLocalArgs == null) {
|
||||
synchronized (this) {
|
||||
if (this.threadLocalArgs == null) {
|
||||
this.threadLocalArgs = new ThreadLocal<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.threadLocalArgs.set(threadLocalArgs);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user