]
Thomas Diesler updated JBWS-1281:
---------------------------------
Fix Version/s: jbossws-1.0.6
(was: jbossws-1.0.5)
If this issue has been rescheduled to 1.0.6 it is because we currently focus 80% of our
effort on JAXWS. If need a particular feature or bugfix to be included in 1.0.5 you are
welcome to get involved and contribute.
When an element is nil, weblogic (8.1 sp3) sends an element with
xsi:nil='1', however, it does not send type information with xsi:type=xxxx. It
causes exception in org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.java.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: JBWS-1281
URL:
http://jira.jboss.com/jira/browse/JBWS-1281
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: binding
Affects Versions: jbossws-1.0.2
Environment: windows xp, linux, jdk1.5
Reporter: George Gan
Fix For: jbossws-1.0.6
Attachments: SundayContentHandler.java
When an element is nil, weblogic (8.1 sp3) sends an element with xsi:nil='1',
however, it does not send type information with xsi:type=xxxx. It causes exception in
org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.java. I hacked to code to
only compare the localpart:
public void endElement(String namespaceURI, String localName, String qName)
{
ElementBinding elementBinding = null;
QName endName = localName.length() == 0 ? new QName(qName) : new
QName(namespaceURI, localName);
StackItem item;
while(true)
{
item = stack.peek();
if(item.cursor == null)
{
if(item.ended)
{
pop();
if(item.particle.isRepeatable())
{
endRepeatableParticle(item.particle);
}
}
else
{
elementBinding = (ElementBinding)item.particle.getTerm();
item.ended = true;
break;
}
}
else
{
if(!item.ended) // could be ended if it's a choice
{
endParticle(item, endName, 1);
}
ParticleBinding currentParticle = item.cursor.getCurrentParticle();
TermBinding term = currentParticle.getTerm();
if(term.isWildcard() && currentParticle.isRepeatable())
{
endRepeatableParticle(currentParticle);
}
pop();
if(item.particle.isRepeatable())
{
endRepeatableParticle(item.particle);
}
}
}
if(elementBinding == null)
{
throw new JBossXBRuntimeException("Failed to endElement " + qName +
": binding not found");
}
//if(!elementBinding.getQName().equals(endName))
<--------------------------------------- hack starts here
// GG hack only compare the local parts. In the case of the an element is nil,
// there is no type prefix
if(!endName.getLocalPart().equals( elementBinding.getQName().getLocalPart()))
{
throw new JBossXBRuntimeException("Failed to end element " +
new QName(namespaceURI, localName) +
": element on the stack is " + elementBinding.getQName()
);
}
endElement();
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: