Forgotten calls on intern() for QName fields
--------------------------------------------

                 Key: XERCESJ-1457
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1457
             Project: Xerces2-J
          Issue Type: Bug
          Components: Other
    Affects Versions: 2.10.0
            Reporter: Stephanie Dietzel
         Attachments: interning-fix.patch

In the class Qname.java, the documentation states, "To be used correctly, the 
strings must be identical references for equal strings."

Here are 26 places where a QName is constructed or modifed with non-interned 
strings.

This is an efficiency concern, because the non-interned strings may take up
more memory than interned ones.  It is also a correctness concern, because
Xerces-J performs comparisons against QName fields using ==.

The attached patch corrects these problems.

For example, in XIncludeHandler.java,

new QName(
           XMLSymbols.PREFIX_XMLNS,
           "",
           XMLSymbols.PREFIX_XMLNS + ":",
           NamespaceContext.XMLNS_URI)

becomes

new QName(
             XMLSymbols.PREFIX_XMLNS,
             "",
             (XMLSymbols.PREFIX_XMLNS + ":").intern(),
             NamespaceContext.XMLNS_URI)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to