You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/04/08 16:49:26 UTC

[2/2] git commit: CAMEL-7349 polish the code as Claus suggested

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/fb84e191
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fb84e191
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fb84e191

Branch: refs/heads/camel-2.12.x
Commit: fb84e1915f9313ab5747039035ce7b711ce70651
Parents: eab42aa
Author: Willem Jiang <wi...@gmail.com>
Authored: Tue Apr 8 22:46:17 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Tue Apr 8 22:48:54 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/fb84e191/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 cf2d33b..a4e41d9 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
@@ -92,7 +92,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() {
     }
@@ -342,6 +342,9 @@ public class JaxbDataFormat extends ServiceSupport implements DataFormat, CamelC
             namespacePrefixMapper = NamespacePrefixMapperFactory.newNamespacePrefixMapper(camelContext, namespacePrefix);
         }
         typeConverter = camelContext.getTypeConverter();
+        if (schema != null) {
+            cachedSchema = createSchema(getSources());
+        }
     }
 
     @Override
@@ -373,7 +376,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
@@ -391,7 +394,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
@@ -404,17 +407,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 {