Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.EnumSet;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.concurrent.TimeUnit;
- public class EnumSetTearingTest {
- public static void main(String[] args) throws Exception {
- for (int i = 0; i < 100; i++) {
- EnumSet<TestEnum> set = EnumSet.noneOf(TestEnum.class);
- ExecutorService pool = Executors.newFixedThreadPool(4);
- for (TestEnum val : TestEnum.values()) {
- pool.submit(() -> {
- set.add(val);
- });
- }
- pool.shutdown();
- pool.awaitTermination(1, TimeUnit.SECONDS);
- if (set.size() != TestEnum.values().length) {
- System.out.println("Boo!");
- } else {
- System.out.println("As expected");
- }
- }
- }
- public enum TestEnum {
- A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement