[jboss-svn-commits] JBoss Common SVN: r2114 - 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
Tue Oct 10 08:16:12 EDT 2006


Author: adrian at jboss.org
Date: 2006-10-10 08:16:10 -0400 (Tue, 10 Oct 2006)
New Revision: 2114

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java
Log:
Fix to avoid processing global group particles multiple times.
Also fix an NPE when TRACE logging is enabled for anonymous types.

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java	2006-10-09 22:12:34 UTC (rev 2113)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java	2006-10-10 12:16:10 UTC (rev 2114)
@@ -867,9 +867,12 @@
                   }
                }
 
-               ctx.pushModelGroup(groupBinding);
-               bindModelGroupParticles(ctx, modelGroup);
-               ctx.popModelGroup();
+               if (groupBinding.getParticles().isEmpty())
+               {
+                  ctx.pushModelGroup(groupBinding);
+                  bindModelGroupParticles(ctx, modelGroup);
+                  ctx.popModelGroup();
+               }
             }
             break;
          case XSConstants.WILDCARD:
@@ -1025,6 +1028,9 @@
       if (ctx.trace)
       {
          TypeBinding parentType = ctx.peekType();
+         QName parentQName = null;
+         if (parentType != null)
+            parentQName = parentType.getQName();
          log.trace("element: name=" +
             qName +
             ", type=" +
@@ -1035,7 +1041,7 @@
             element.isNillable() +
             ", minOccurs=" + minOccurs +
             ", maxOccurs=" + (maxOccursUnbounded ? "unbounded" : "" + maxOccurs) +
-            ", " + (global ? "global scope" : " owner type=" + parentType.getQName())
+            ", " + (global ? "global scope" : " owner type=" + parentQName)
          );
       }
 
@@ -1291,9 +1297,12 @@
    private static void bindGlobalGroupParticles(XSModelGroup group, Context ctx)
    {
       ModelGroupBinding groupBinding = ctx.sharedElements.getGlobalGroup(group);
-      ctx.pushModelGroup(groupBinding);
-      bindModelGroupParticles(ctx, group);
-      ctx.popModelGroup();
+      if (groupBinding.getParticles().isEmpty())
+      {
+         ctx.pushModelGroup(groupBinding);
+         bindModelGroupParticles(ctx, group);
+         ctx.popModelGroup();
+      }
    }
 
 




More information about the jboss-svn-commits mailing list