import org.apache.commons.lang.enums.*; import java.util.*; public class EnumPlay implements Runnable { public static void main(String[] args) throws Exception { for(int i=0; i<100; i++) { Thread t = new Thread(new EnumPlay()); t.start(); } } public void run() { int i=1000000; while(i > 0) { i--; ValuedEnum ve = ValuedColorEnum.getEnum(1); if(ve == null) { System.err.println("NULL FOUND"); } } } } // copy of the one in src/test class ValuedColorEnum extends ValuedEnum { public static final ValuedColorEnum RED = new ValuedColorEnum("Red", 1); public static final ValuedColorEnum GREEN = new ValuedColorEnum("Green", 2); public static final ValuedColorEnum BLUE = new ValuedColorEnum("Blue", 3); private ValuedColorEnum(String color, int value) { super(color, value); } public static ValuedColorEnum getEnum(String color) { return (ValuedColorEnum) getEnum(ValuedColorEnum.class, color); } public static ValuedColorEnum getEnum(int value) { return (ValuedColorEnum) getEnum(ValuedColorEnum.class, value); } public static Map getEnumMap() { return getEnumMap(ValuedColorEnum.class); } public static List getEnumList() { return getEnumList(ValuedColorEnum.class); } public static Iterator iterator() { return iterator(ValuedColorEnum.class); } }