This is an automated email from the ASF dual-hosted git repository.
pascalschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 4c8c071 Fix race conditions in double-checked locking object
initializations.
4c8c071 is described below
commit 4c8c071fba493dbf41f09103712036805133a5a8
Author: Pascal Schumacher <[email protected]>
AuthorDate: Fri Dec 20 14:36:58 2019 +0100
Fix race conditions in double-checked locking object initializations.
---
.../camel/dataformat/univocity/AbstractUniVocityDataFormat.java | 4 ++--
.../src/main/java/org/apache/camel/impl/engine/ServicePool.java | 5 +++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git
a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
index d53f33e..edf11fd4 100644
---
a/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
+++
b/components/camel-univocity-parsers/src/main/java/org/apache/camel/dataformat/univocity/AbstractUniVocityDataFormat.java
@@ -83,8 +83,8 @@ public abstract class AbstractUniVocityDataFormat<F extends
Format, CWS extends
if (writerSettings == null) {
synchronized (writerSettingsToken) {
if (writerSettings == null) {
- writerSettings = createAndConfigureWriterSettings();
marshaller = new Marshaller<>(headers, headers == null);
+ writerSettings = createAndConfigureWriterSettings();
}
}
}
@@ -105,13 +105,13 @@ public abstract class AbstractUniVocityDataFormat<F
extends Format, CWS extends
if (parserSettings == null) {
synchronized (parserSettingsToken) {
if (parserSettings == null) {
+ unmarshaller = new Unmarshaller<>(lazyLoad, asMap);
parserSettings = new ThreadLocal<CPS>() {
@Override
protected CPS initialValue() {
return createAndConfigureParserSettings();
}
};
- unmarshaller = new Unmarshaller<>(lazyLoad, asMap);
}
}
}
diff --git
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/ServicePool.java
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/ServicePool.java
index a75cdd6..3efe0a7 100644
---
a/core/camel-base/src/main/java/org/apache/camel/impl/engine/ServicePool.java
+++
b/core/camel-base/src/main/java/org/apache/camel/impl/engine/ServicePool.java
@@ -230,8 +230,9 @@ public class ServicePool<S extends Service> extends
ServiceSupport implements No
if (s == null) {
synchronized (this) {
if (s == null) {
- s = producer.apply(endpoint);
- endpoint.getCamelContext().addService(s, true, true);
+ S tempS = producer.apply(endpoint);
+ endpoint.getCamelContext().addService(tempS, true,
true);
+ s = tempS;
}
}
}