[ 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]

Reply via email to