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]

Reply via email to