[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