Performance: Avoid overuse of XMLStreamWriter.getNamespaceContext()
-------------------------------------------------------------------
Key: WSCOMMONS-279
URL: https://issues.apache.org/jira/browse/WSCOMMONS-279
Project: WS-Commons
Issue Type: Bug
Components: AXIOM
Reporter: Rich Scheuerle
Assignee: Rich Scheuerle
History:
An XMLStreamWriter is used to serialize Axiom trees. The NamespaceContext of
the XMLStreamWriter is queried to determine if a {prefix, namespace} pair is
associated.
If not,"setPrefix(..)" or "setDefaultNamespace(...)" is invoked, which will
cause the writer to write a namespace declaration.
This code is complicated by the determination of whether setPrefix occurs
before or after the start tag.
Problem:
Calling getNamespaceContext() is expensive. Some XMLStreamWriter
implementations construct new NamespaceContext objects. Creating and garbage
collection of these objects can cause performance degradations.
Solution:
I wrote an isAssociated(String prefix, String namespace) method in
OMSerializerUtil. This method has a two stage "association" check. First it
uses the writer.getPrefix(uri) call. If this check fails, it falls back to the
getNamespaceContext() check. This two stage approach avoids unnecessary
NamespaceContext construction. It is also a convenient utility for
debugging/support.
--
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]