Repository: camel
Updated Branches:
  refs/heads/camel-2.12.x eab42aad9 -> fb84e1915
  refs/heads/camel-2.13.x 30f430cc5 -> 7d3babce1


CAMEL-7349 polish the code as Claus suggested


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7d3babce
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7d3babce
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7d3babce

Branch: refs/heads/camel-2.13.x
Commit: 7d3babce1c15c93ba34474d16bf8f7f39935a072
Parents: 30f430c
Author: Willem Jiang <willem.ji...@gmail.com>
Authored: Tue Apr 8 22:46:17 2014 +0800
Committer: Willem Jiang <willem.ji...@gmail.com>
Committed: Tue Apr 8 22:48:46 2014 +0800

----------------------------------------------------------------------
 .../camel/converter/jaxb/JaxbDataFormat.java    | 20 ++++++--------------
 1 file changed, 6 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7d3babce/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
 
b/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
index d34836d..f63d91d 100644
--- 
a/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
+++ 
b/components/camel-jaxb/src/main/java/org/apache/camel/converter/jaxb/JaxbDataFormat.java
@@ -91,7 +91,7 @@ public class JaxbDataFormat extends ServiceSupport implements 
DataFormat, CamelC
     private JaxbNamespacePrefixMapper namespacePrefixMapper;
     private JaxbXmlStreamWriterWrapper xmlStreamWriterWrapper;
     private TypeConverter typeConverter;
-    private volatile Schema cachedSchema;
+    private Schema cachedSchema;
 
     public JaxbDataFormat() {
     }
@@ -341,6 +341,9 @@ public class JaxbDataFormat extends ServiceSupport 
implements DataFormat, CamelC
             namespacePrefixMapper = 
NamespacePrefixMapperFactory.newNamespacePrefixMapper(camelContext, 
namespacePrefix);
         }
         typeConverter = camelContext.getTypeConverter();
+        if (schema != null) {
+            cachedSchema = createSchema(getSources());
+        }
     }
 
     @Override
@@ -372,7 +375,7 @@ public class JaxbDataFormat extends ServiceSupport 
implements DataFormat, CamelC
         MalformedURLException {
         Unmarshaller unmarshaller = getContext().createUnmarshaller();
         if (schema != null) {
-            unmarshaller.setSchema(getCachedSchema());
+            unmarshaller.setSchema(cachedSchema);
             unmarshaller.setEventHandler(new ValidationEventHandler() {
                 public boolean handleEvent(ValidationEvent event) {
                     // stop unmarshalling if the event is an ERROR or FATAL
@@ -390,7 +393,7 @@ public class JaxbDataFormat extends ServiceSupport 
implements DataFormat, CamelC
         MalformedURLException {
         Marshaller marshaller = getContext().createMarshaller();
         if (schema != null) {
-            marshaller.setSchema(getCachedSchema());
+            marshaller.setSchema(cachedSchema);
             marshaller.setEventHandler(new ValidationEventHandler() {
                 public boolean handleEvent(ValidationEvent event) {
                     // stop marshalling if the event is an ERROR or FATAL ERROR
@@ -403,17 +406,6 @@ public class JaxbDataFormat extends ServiceSupport 
implements DataFormat, CamelC
         return marshaller;
     }
     
-    private Schema getCachedSchema() throws FileNotFoundException, 
MalformedURLException, SAXException {
-        if (cachedSchema == null) {
-            synchronized (this) {
-                if (cachedSchema == null) {
-                    cachedSchema = createSchema(getSources());
-                }
-            }
-        }
-        return cachedSchema;
-    }
-    
     private Schema createSchema(Source[] sources) throws SAXException {
         SchemaFactory factory = getOrCreateSchemaFactory();
         try {

Reply via email to