[
https://issues.apache.org/jira/browse/XERCESJ-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12887239#action_12887239
]
Michael Glavassevich commented on XERCESJ-1457:
-----------------------------------------------
DTDGrammars are built from the XML scanner. The scanner interns strings (via
the SymbolTable). All the components connected to it in the pipeline receive
those strings. Developers who have studied Xerces' overall design [1] should
have learned that. While I agree that there could be more comments in the code
to help the casual reader understand I haven't seen anything in the context
that these strings (and I'm also talking about the ones in XSDHandler and
elsewhere) are used which would suggest that there are any actual bugs to be
fixed. If you've found a real defect we should fix it, otherwise I'm inclined
to return this JIRA issue.
[1] http://xerces.apache.org/xerces2-j/xni-xerces2.html
> 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
>
> Original Estimate: 0.08h
> Remaining Estimate: 0.08h
>
> 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]