[jboss-svn-commits] JBoss Common SVN: r2638 - jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 11 22:30:40 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-11 22:30:40 -0400 (Thu, 11 Oct 2007)
New Revision: 2638

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java
Log:
Don't cache a schema binding by namespace if it was located by schemaLocation

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java	2007-10-11 21:32:07 UTC (rev 2637)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultSchemaResolver.java	2007-10-12 02:30:40 UTC (rev 2638)
@@ -259,6 +259,8 @@
    public SchemaBinding resolve(String nsURI, String baseURI, String schemaLocation)
    {
       boolean trace = log.isTraceEnabled();
+      // Was the schema binding based on the nsURI
+      boolean foundByNS = false;
       SchemaBinding schema = schemasByUri.get(nsURI);
       if(schema != null)
       {
@@ -273,6 +275,8 @@
       {
          // Next look by namespace
          bindingClass = uriToClass.get(nsURI);
+         if(bindingClass != null)
+            foundByNS = true;
       }
       if (bindingClass != null)
       {
@@ -304,6 +308,7 @@
             Boolean processAnnotationsBoolean = schemaParseAnnotationsByUri.get(nsURI);
             boolean processAnnotations = (processAnnotationsBoolean == null) ? true : processAnnotationsBoolean.booleanValue();
             schema = XsdBinder.bind(is.getByteStream(), null, baseURI, processAnnotations);
+            foundByNS = true;
          }
       }
 
@@ -316,7 +321,7 @@
             schema = sbi.init(schema);
          }
 
-         if(schema != null && nsURI.length() > 0 && cacheResolvedSchemas)
+         if(schema != null && nsURI.length() > 0 && cacheResolvedSchemas && foundByNS)
          {
             if(schemasByUri == Collections.EMPTY_MAP)
             {




More information about the jboss-svn-commits mailing list