[ http://issues.apache.org/jira/browse/XALANJ-1860?page=all ]
Brian Minchau updated XALANJ-1860:
----------------------------------
Fix Version: 2.7
> NAMESPACE_ERR when parsing a tag with a namespace but no prefix
> ---------------------------------------------------------------
>
> Key: XALANJ-1860
> URL: http://issues.apache.org/jira/browse/XALANJ-1860
> Project: XalanJ2
> Type: Bug
> Components: transformation, Xalan-interpretive
> Versions: 2.5Dx
> Environment: Operating System: Linux
> Platform: PC
> Reporter: Arjun
> Assignee: Joanne Tong
> Fix For: 2.7
>
> I am using Sun's SOAP libraries with xalan 2.6.0 as the underlying xml library
> to create a SOAP document with a tag that has a namespace but no prefix
> (<MyTag
> xmlns="http://foo.com/schema"/>) which i believe is a correct syntax. When
> parsing this, i get the following exception:
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change
> an object in a way which is incorrect with regard to namespaces.
> The test program below works fine with the version of xalan included in Sun's
> JDK 1.4.2_03 (details below) but crashes when setting xalan 2.6.0 as
> java.endorsed.lib
> I believe the problem is caused by xalan's TransformerIdentityImpl forcing
> http://xml.org/sax/features/namespace-prefixes feature to true. if I had
> direct
> access to the XMLReader and could set the feature to false, i know it would
> work
> fine, but since i'm manipulating the document through SOAP APIs, there's not
> much i can do. I am also reporting the problem to Sun.
> It is most probably related with xalan bug #15140, but it does not fix my
> problem.
> -------------TEST PROGRAM-----------
> import javax.xml.soap.*;
> import java.io.*;
> public class SoapTest
> {
> public static void main( String arg[] )
> throws Exception
> {
> MessageFactory mfactory = MessageFactory.newInstance();
> SOAPFactory sfactory = SOAPFactory.newInstance();
> SOAPMessage orig = mfactory.createMessage();
> SOAPBody body = orig.getSOAPBody();
> body.addBodyElement( sfactory.createName( "MyTag", null,
> "http://foo.com/schema" ) ); //purposely set no namespace prefix
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> orig.writeTo( baos );
> orig.writeTo( System.out );
> SOAPMessage parsed = mfactory.createMessage(
> orig.getMimeHeaders(), new
> ByteArrayInputStream( baos.toByteArray() ) );
> parsed.getSOAPBody();
> System.out.println( "done." );
> }
> }
> -------------STACK TRACE-----------
> SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><MyTag
> xmlns="http://foo.com/schema"/></SOAP-ENV:Body></SOAP-ENV:Envelope>Apr 16,
> 2004
> 11:17:54 AM com.sun.xml.messaging.saaj.soap.EnvelopeFactory createEnvelope
> SEVERE: SAAJ0511: Unable to create envelope from given source
> Exception in thread "main" com.sun.xml.messaging.saaj.SOAPExceptionImpl:
> Unable
> to create envelope from given source:
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:79)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> Caused by: javax.xml.transform.TransformerException: org.w3c.dom.DOMException:
> NAMESPACE_ERR: An attempt is made to create or change an object in a way which
> is incorrect with regard to namespaces.
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:449)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> ... 4 more
> Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to
> create
> or change an object in a way which is incorrect with regard to namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> ... 5 more
> CAUSE:
> javax.xml.transform.TransformerException: org.w3c.dom.DOMException:
> NAMESPACE_ERR: An attempt is made to create or change an object in a way which
> is incorrect with regard to namespaces.
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:449)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to
> create
> or change an object in a way which is incorrect with regard to namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> ... 5 more
> ---------
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change
> an object in a way which is incorrect with regard to namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> ---------
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change
> an object in a way which is incorrect with regard to namespaces.
> at org.apache.xerces.dom.AttrNSImpl.setName(Unknown Source)
> at org.apache.xerces.dom.AttrNSImpl.<init>(Unknown Source)
> at org.apache.xerces.dom.CoreDocumentImpl.createAttributeNS(Unknown
> Source)
> at
> com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl.createAttributeNS(SOAPDocumentImpl.java:144)
> at org.apache.xerces.dom.ElementImpl.setAttributeNS(Unknown Source)
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:307)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> CAUSE:
> javax.xml.transform.TransformerException: org.w3c.dom.DOMException:
> NAMESPACE_ERR: An attempt is made to create or change an object in a way which
> is incorrect with regard to namespaces.
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:449)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to
> create
> or change an object in a way which is incorrect with regard to namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> ... 5 more
> ---------
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change
> an object in a way which is incorrect with regard to namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> ---------
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change
> an object in a way which is incorrect with regard to namespaces.
> at org.apache.xerces.dom.AttrNSImpl.setName(Unknown Source)
> at org.apache.xerces.dom.AttrNSImpl.<init>(Unknown Source)
> at org.apache.xerces.dom.CoreDocumentImpl.createAttributeNS(Unknown
> Source)
> at
> com.sun.xml.messaging.saaj.soap.SOAPDocumentImpl.createAttributeNS(SOAPDocumentImpl.java:144)
> at org.apache.xerces.dom.ElementImpl.setAttributeNS(Unknown Source)
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:307)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
> at org.xml.sax.helpers.XMLFilterImpl.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
> Source)
> at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:432)
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFactory.java:71)
> at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSource(SOAPPart1_1Impl.java:34)
> at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:75)
> at
> com.sun.xml.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:612)
> at SoapTest.main(SoapTest.java:22)
> -------------JDK INFO-----------
> java version "1.4.2_03"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
> Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
> -------------OS INFO-----------
> Linux nx0145.nextenso.alcatel.fr 2.4.19-16mdk #1 Fri Sep 20 18:15:05 CEST 2002
> i686 unknown unknown GNU/Linux
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]