DTDElementDecl lazy initialization not thread safe.
---------------------------------------------------
Key: XERCESC-1350
URL: http://issues.apache.org/jira/browse/XERCESC-1350
Project: Xerces-C++
Type: Bug
Components: SAX/SAX2, Validating Parser (DTD)
Versions: 2.6.0
Environment: Solaris
Reporter: Mark Weissman
DTDElementDecl.cpp && DTDElementDecl.hpp perform lazy evaluation on many
of the get() methods. This is used in cached grammars which may
be shared by multiple threads and accessed unsynchonized.
Lazy initialization is generally a bad pattern, but particularly in
multithreaded
applications. It should be disabled for shared grammars.
I work around this by calling all the getters when I create my Grammar pool
but I think this should not be necessary.
It would be good if somebody could check all the lazy evaluations that might
affect shared grammars.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]