jdk/test/java/util/concurrent/Executors/Throws.java
changeset 24692 268fbc344d53
parent 7668 d4a77089c587
child 34347 4a17f9e90a0f
equal deleted inserted replaced
24691:f96e172a6ce8 24692:268fbc344d53
     1 /*
     1 /*
     2  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    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();