Enum is not thread-safe
-----------------------

                 Key: LANG-334
                 URL: https://issues.apache.org/jira/browse/LANG-334
             Project: Commons Lang
          Issue Type: Bug
            Reporter: Michael Sclafani


Enum uses no synchronization. Even if you assume that instances are only 
declared statically, the cEnumClasses map is global and can be written to when 
a thread triggers static initialization of B.class while some other thread is 
doing getEnumList(A.class). Unsynchronized access of a map undergoing mutation 
is not thread-safe.

This isn't theoretical. We're seeing ValuedEnum.getEnum(X.class, 0) return null 
after returning the correct value over 100,000 times, and then return the 
correct value again on the next invocation.


-- 
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