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 {