[ 
https://issues.apache.org/jira/browse/LANG-334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12502107
 ] 

Henri Yandell commented on LANG-334:
------------------------------------

Sorry for missing the two class bit.  I'm not looking for a unit test, just a 
way to replicate the issue so that a fix can be created. 

Failing that, find time to sit and think hard :)

> 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
>             Fix For: 2.3.1
>
>         Attachments: EnumPlay.java
>
>
> 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