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]