43 = new RejectedExecutionHandler() { |
43 = new RejectedExecutionHandler() { |
44 public void rejectedExecution(Runnable r, |
44 public void rejectedExecution(Runnable r, |
45 ThreadPoolExecutor executor) {}}; |
45 ThreadPoolExecutor executor) {}}; |
46 final RejectedExecutionHandler nullHandler = null; |
46 final RejectedExecutionHandler nullHandler = null; |
47 |
47 |
48 THROWS( |
48 THROWS(NullPointerException.class, |
49 NullPointerException.class, |
49 () -> newFixedThreadPool(3, null), |
50 new Fun(){void f(){ newFixedThreadPool(3, null); }}, |
50 () -> newCachedThreadPool(null), |
51 new Fun(){void f(){ newCachedThreadPool(null); }}, |
51 () -> newSingleThreadScheduledExecutor(null), |
52 new Fun(){void f(){ newSingleThreadScheduledExecutor(null); }}, |
52 () -> newScheduledThreadPool(0, null), |
53 new Fun(){void f(){ newScheduledThreadPool(0, null); }}, |
53 () -> unconfigurableExecutorService(null), |
54 new Fun(){void f(){ unconfigurableExecutorService(null); }}, |
54 () -> unconfigurableScheduledExecutorService(null), |
55 new Fun(){void f(){ unconfigurableScheduledExecutorService(null); }}, |
55 () -> callable(null, "foo"), |
56 new Fun(){void f(){ callable(null, "foo"); }}, |
56 () -> callable((Runnable) null), |
57 new Fun(){void f(){ callable((Runnable) null); }}, |
57 () -> callable((PrivilegedAction<?>) null), |
58 new Fun(){void f(){ callable((PrivilegedAction<?>) null); }}, |
58 () -> callable((PrivilegedExceptionAction<?>) null), |
59 new Fun(){void f(){ callable((PrivilegedExceptionAction<?>) null); }}, |
59 () -> privilegedCallable((Callable<?>) null), |
60 new Fun(){void f(){ privilegedCallable((Callable<?>) null); }}, |
60 () -> new ScheduledThreadPoolExecutor(0, nullFactory), |
61 new Fun(){void f(){ new ScheduledThreadPoolExecutor(0, nullFactory); }}, |
61 () -> new ScheduledThreadPoolExecutor(0, nullFactory, reh), |
62 new Fun(){void f(){ new ScheduledThreadPoolExecutor(0, nullFactory, reh); }}, |
62 () -> new ScheduledThreadPoolExecutor(0, fac, nullHandler)); |
63 new Fun(){void f(){ new ScheduledThreadPoolExecutor(0, fac, nullHandler); }}); |
|
64 |
63 |
65 THROWS( |
64 THROWS(IllegalArgumentException.class, |
66 IllegalArgumentException.class, |
65 () -> newFixedThreadPool(-42), |
67 new Fun(){void f(){ newFixedThreadPool(-42); }}, |
66 () -> newFixedThreadPool(0), |
68 new Fun(){void f(){ newFixedThreadPool(0) ; }}, |
67 () -> newFixedThreadPool(-42, fac), |
69 new Fun(){void f(){ newFixedThreadPool(-42, fac); }}, |
68 () -> newFixedThreadPool(0, fac), |
70 new Fun(){void f(){ newFixedThreadPool(0, fac); }}, |
69 () -> newScheduledThreadPool(-42), |
71 new Fun(){void f(){ newScheduledThreadPool(-42); }}, |
70 () -> new ScheduledThreadPoolExecutor(-42), |
72 new Fun(){void f(){ new ScheduledThreadPoolExecutor(-42); }}, |
71 () -> new ScheduledThreadPoolExecutor(-42, reh), |
73 new Fun(){void f(){ new ScheduledThreadPoolExecutor(-42, reh); }}, |
72 () -> new ScheduledThreadPoolExecutor(-42, fac, reh)); |
74 new Fun(){void f(){ new ScheduledThreadPoolExecutor(-42, fac, reh); }}); |
|
75 |
73 |
76 try { newFixedThreadPool(1).shutdownNow(); pass(); } |
74 try { newFixedThreadPool(1).shutdownNow(); pass(); } |
77 catch (Throwable t) { unexpected(t); } |
75 catch (Throwable t) { unexpected(t); } |
78 |
76 |
79 try { newFixedThreadPool(1, fac).shutdownNow(); pass(); } |
77 try { newFixedThreadPool(1, fac).shutdownNow(); pass(); } |
120 else fail(x + " not equal to " + y);} |
118 else fail(x + " not equal to " + y);} |
121 public static void main(String[] args) throws Throwable { |
119 public static void main(String[] args) throws Throwable { |
122 try {realMain(args);} catch (Throwable t) {unexpected(t);} |
120 try {realMain(args);} catch (Throwable t) {unexpected(t);} |
123 System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); |
121 System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); |
124 if (failed > 0) throw new AssertionError("Some tests failed");} |
122 if (failed > 0) throw new AssertionError("Some tests failed");} |
125 private abstract static class Fun {abstract void f() throws Throwable;} |
123 interface Fun {void f() throws Throwable;} |
126 static void THROWS(Class<? extends Throwable> k, Fun... fs) { |
124 static void THROWS(Class<? extends Throwable> k, Fun... fs) { |
127 for (Fun f : fs) |
125 for (Fun f : fs) |
128 try { f.f(); fail("Expected " + k.getName() + " not thrown"); } |
126 try { f.f(); fail("Expected " + k.getName() + " not thrown"); } |
129 catch (Throwable t) { |
127 catch (Throwable t) { |
130 if (k.isAssignableFrom(t.getClass())) pass(); |
128 if (k.isAssignableFrom(t.getClass())) pass(); |