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

XML Digital Signature throws NAMESPACE_ERR exception on OpenJDK 11, works 8/9/10

    XMLWordPrintable

Details

    Backports

      Description

        ADDITIONAL SYSTEM INFORMATION :
        Works Java 8:
        java version "1.8.0_161"
        Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
        Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

        Works Java 10:
        java version "10.0.2" 2018-07-17
        Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
        Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

        Broken on Java 11:
        openjdk version "11.0.2" 2019-01-15
        OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
        OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

        A DESCRIPTION OF THE PROBLEM :
        My XML Digital Signature code runs fine under Java 8 (1.8.0_161), but on upgrading to OpenJDK 11 (11.0.2, ), it now traps with an NAMESPACE_ERR 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.

        at java.xml/com.sun.org.apache.xerces.internal.dom.ElementNSImpl.setName(ElementNSImpl.java:109)
        at java.xml/com.sun.org.apache.xerces.internal.dom.ElementNSImpl.<init>(ElementNSImpl.java:84)
        at java.xml/com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElementNS(CoreDocumentImpl.java:2089)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.XmlWriterToTree.writeStartElement(XmlWriterToTree.java:99)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:303)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller.marshalGenericNode(Marshaller.java:286)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:251)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.Marshaller$14.marshalObject(Marshaller.java:247)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.XmlWriterToTree.marshalStructure(XmlWriterToTree.java:200)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLObject.marshal(DOMXMLObject.java:180)
        at java.xml.crypto/org.jcp.xml.dsig.internl.dom.DOMXMLSignature.marshal(DOMXMLSignature.java:233)
        at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.sign(DOMXMLSignature.java:325)
        at com.esignforms.open.crypto.XmlDigitalSignature.sign(XmlDigitalSignature.java:208)

        If I revert back to Java 8 or even Java 10, it works again.

        REGRESSION : Last worked in version 8u181


        CUSTOMER SUBMITTED WORKAROUND :
        Currently, we have to revert from JDK 11 to Java 8 or 10.

        FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

                mullan Sean Mullan
                webbuggrp Webbug Group
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: