Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6392072

REGRESSION: Duplicate attributes in result document

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 6
    • 6
    • xml

      FULL PRODUCT VERSION :
      [jwi@stujwi tcli]$ java -version
      java version "1.6.0-beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-beta-b59g)
      Java HotSpot(TM) Client VM (build 1.6.0-beta-b59g, mixed mode, sharing)


      ADDITIONAL OS VERSION INFORMATION :
      Linux stujwi.eur.ad.sag 2.6.15-1.1831_FC4 #1 Tue Feb 7 13:37:42 EST 2006 i686 i686 i386 GNU/Linux


      A DESCRIPTION OF THE PROBLEM :
      The attached program is parsing an XML document, demonstrating that it is well formed. Once that is done, it parses the same document again, this time transforming the output to a stream. The result is expected to be well formed as well.

      However, this is not the case: The result document contains multiple instances of the attribute xmlns:xql.


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Compile and run the attached Java class.


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      This is with JDK 1.5:

          [jwi@stujwi tcli]$ /usr/java/jdk1.5.0_06/bin/java -cp target/classes/ TSD3
          Input is well formed.
          Output is well formed.

      ACTUAL -
      And this is with JDK1.6:

          [jwi@stujwi tcli]$ /usr/java/jdk1.6.0/bin/java -cp target/classes/ TSD3
          Input is well formed.
          <?xml version="1.0" encoding="UTF-8"?><ino:response xmlns:ino="http://namespaces.softwareag.com/tamino/response2" xmlns:xql="http://metalab.unc.edu/xql/" xmlns:xql="http://metalab.unc.edu/xql/"> <xql:query>xs:schema[@ino:docname='ino:collection/TSD3']</xql:query></ino:response>
      org.xml.sax.SAXParseException: Attribute "xmlns:xql" was already specified for element "ino:response".
              at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
              at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)
              at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388)
              at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1401)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1545)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1310)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1281)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3079)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:910)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
              at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:506)
              at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
              at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
              at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
              at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
              at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
              at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
              at TSD3.parseString(TSD3.java:18)
              at TSD3.main(TSD3.java:35)



      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.io.StringReader;
      import java.io.StringWriter;

      import javax.xml.parsers.SAXParserFactory;
      import javax.xml.transform.Transformer;
      import javax.xml.transform.TransformerFactory;
      import javax.xml.transform.stream.StreamResult;
      import javax.xml.transform.stream.StreamSource;

      import org.xml.sax.InputSource;
      import org.xml.sax.SAXParseException;
      import org.xml.sax.helpers.DefaultHandler;


      public class TSD3 {
      private static void parseString(String s) throws Exception {
      InputSource is = new InputSource(new StringReader(s));
      SAXParserFactory.newInstance().newSAXParser().parse(is, new DefaultHandler());
      }

      public static void main(String[] args) throws Exception {
      final String xsd =
      "<ino:response"
      + " xmlns:ino='http://namespaces.softwareag.com/tamino/response2&#39;"
      + " xmlns:xql='http://metalab.unc.edu/xql/&#39;>"
      + " <xql:query>xs:schema[@ino:docname=&apos;ino:collection/TSD3&apos;]</xql:query>"
      + "</ino:response>";
      parseString(xsd);
      System.out.println("Input is well formed.");
      Transformer t = TransformerFactory.newInstance().newTransformer();
      StreamSource ss = new StreamSource(new StringReader(xsd));
      StringWriter sw = new StringWriter();
      t.transform(ss, new StreamResult(sw));
      try {
      parseString(sw.toString());
      System.out.println("Output is well formed.");
      } catch (SAXParseException e) {
      System.out.println(sw.toString());
      e.printStackTrace(System.out);
      }
      }
      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Choose a different JAXP implementation.

      Release Regression From : 5.0
      The above release value was the last known release where this
      bug was known to work. Since then there has been a regression.

            spericas Santiago Pericasgeertsen
            rmandalasunw Ranjith Mandala (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: