Methods Summary |
---|
public static void | main(java.lang.String[] args)
junit.textui.TestRunner.run (suite());
|
public static junit.framework.Test | suite()
return new TestSuite(AbstractExecutorServiceTest.class);
|
public void | testExecute1()submit(runnable) throws RejectedExecutionException if
executor is saturated.
ThreadPoolExecutor p = new ThreadPoolExecutor(1,1, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(1));
try {
for(int i = 0; i < 5; ++i){
p.submit(new MediumRunnable());
}
shouldThrow();
} catch(RejectedExecutionException success){}
joinPool(p);
|
public void | testExecute2()submit(callable) throws RejectedExecutionException
if executor is saturated.
ThreadPoolExecutor p = new ThreadPoolExecutor(1,1, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(1));
try {
for(int i = 0; i < 5; ++i) {
p.submit(new SmallCallable());
}
shouldThrow();
} catch(RejectedExecutionException e){}
joinPool(p);
|
public void | testExecuteNullRunnable()execute(null runnable) throws NPE
try {
ExecutorService e = new DirectExecutorService();
TrackedShortRunnable task = null;
Future<?> future = e.submit(task);
shouldThrow();
}
catch (NullPointerException success) {
}
catch (Exception ex) {
unexpectedException();
}
|
public void | testExecuteRunnable()execute(runnable) runs it to completion
try {
ExecutorService e = new DirectExecutorService();
TrackedShortRunnable task = new TrackedShortRunnable();
assertFalse(task.done);
Future<?> future = e.submit(task);
future.get();
assertTrue(task.done);
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
|
public void | testInterruptedSubmit()Blocking on submit(callable) throws InterruptedException if
caller interrupted.
final ThreadPoolExecutor p = new ThreadPoolExecutor(1,1,60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10));
Thread t = new Thread(new Runnable() {
public void run() {
try {
p.submit(new Callable<Object>() {
public Object call() {
try {
Thread.sleep(MEDIUM_DELAY_MS);
shouldThrow();
} catch(InterruptedException e){
}
return null;
}
}).get();
} catch(InterruptedException success){
} catch(Exception e) {
unexpectedException();
}
}
});
try {
t.start();
Thread.sleep(SHORT_DELAY_MS);
t.interrupt();
} catch(Exception e){
unexpectedException();
}
joinPool(p);
|
public void | testInvokeAll1()invokeAll(null) throws NPE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAll(null);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAll2()invokeAll(empty collection) returns empty collection
ExecutorService e = new DirectExecutorService();
try {
List<Future<String>> r = e.invokeAll(new ArrayList<Callable<String>>());
assertTrue(r.isEmpty());
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAll3()invokeAll(c) throws NPE if c has null elements
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(null);
e.invokeAll(l);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAll4()get of returned element of invokeAll(c) throws exception on failed task
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new NPETask());
List<Future<String>> result = e.invokeAll(l);
assertEquals(1, result.size());
for (Iterator<Future<String>> it = result.iterator(); it.hasNext();)
it.next().get();
} catch(ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAll5()invokeAll(c) returns results of all completed tasks in c
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(new StringTask());
List<Future<String>> result = e.invokeAll(l);
assertEquals(2, result.size());
for (Iterator<Future<String>> it = result.iterator(); it.hasNext();)
assertSame(TEST_STRING, it.next().get());
} catch (ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAny1()invokeAny(null) throws NPE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAny(null);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAny2()invokeAny(empty collection) throws IAE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAny(new ArrayList<Callable<String>>());
} catch (IllegalArgumentException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAny3()invokeAny(c) throws NPE if c has null elements
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(null);
e.invokeAny(l);
} catch (NullPointerException success) {
} catch(Exception ex) {
ex.printStackTrace();
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAny4()invokeAny(c) throws ExecutionException if no task in c completes
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new NPETask());
e.invokeAny(l);
} catch(ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testInvokeAny5()invokeAny(c) returns result of some task in c if at least one completes
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(new StringTask());
String result = e.invokeAny(l);
assertSame(TEST_STRING, result);
} catch (ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testSubmitCallable()Completed submit(callable) returns result
try {
ExecutorService e = new DirectExecutorService();
Future<String> future = e.submit(new StringTask());
String result = future.get();
assertSame(TEST_STRING, result);
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
|
public void | testSubmitEE()get of submit(callable) throws ExecutionException if callable
throws exception
ThreadPoolExecutor p = new ThreadPoolExecutor(1,1,60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10));
try {
Callable c = new Callable() {
public Object call() {
int i = 5/0;
return Boolean.TRUE;
}
};
for(int i =0; i < 5; i++){
p.submit(c).get();
}
shouldThrow();
}
catch(ExecutionException success){
} catch(Exception e) {
unexpectedException();
}
joinPool(p);
|
public void | testSubmitFailedPrivilegedExceptionAction()A submitted failed privileged exception action reports exception
Policy savedPolicy = null;
try {
savedPolicy = Policy.getPolicy();
AdjustablePolicy policy = new AdjustablePolicy();
policy.addPermission(new RuntimePermission("getContextClassLoader"));
policy.addPermission(new RuntimePermission("setContextClassLoader"));
Policy.setPolicy(policy);
} catch(AccessControlException ok) {
return;
}
try {
ExecutorService e = new DirectExecutorService();
Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {
public Object run() throws Exception {
throw new IndexOutOfBoundsException();
}}));
Object result = future.get();
shouldThrow();
}
catch (ExecutionException success) {
}
catch (InterruptedException ex) {
unexpectedException();
}
finally {
Policy.setPolicy(savedPolicy);
}
|
public void | testSubmitIE()get of submitted callable throws Exception if callable
interrupted
final ThreadPoolExecutor p = new ThreadPoolExecutor(1,1,60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(10));
final Callable c = new Callable() {
public Object call() {
try {
p.submit(new SmallCallable()).get();
shouldThrow();
} catch(InterruptedException e){}
catch(RejectedExecutionException e2){}
catch(ExecutionException e3){}
return Boolean.TRUE;
}
};
Thread t = new Thread(new Runnable() {
public void run() {
try {
c.call();
} catch(Exception e){}
}
});
try {
t.start();
Thread.sleep(SHORT_DELAY_MS);
t.interrupt();
t.join();
} catch(InterruptedException e){
unexpectedException();
}
joinPool(p);
|
public void | testSubmitNullCallable()submit(null callable) throws NPE
try {
ExecutorService e = new DirectExecutorService();
StringTask t = null;
Future<String> future = e.submit(t);
shouldThrow();
}
catch (NullPointerException success) {
}
catch (Exception ex) {
unexpectedException();
}
|
public void | testSubmitPrivilegedAction()A submitted privileged action to completion
Policy savedPolicy = null;
try {
savedPolicy = Policy.getPolicy();
AdjustablePolicy policy = new AdjustablePolicy();
policy.addPermission(new RuntimePermission("getContextClassLoader"));
policy.addPermission(new RuntimePermission("setContextClassLoader"));
Policy.setPolicy(policy);
} catch(AccessControlException ok) {
return;
}
try {
ExecutorService e = new DirectExecutorService();
Future future = e.submit(Executors.callable(new PrivilegedAction() {
public Object run() {
return TEST_STRING;
}}));
Object result = future.get();
assertSame(TEST_STRING, result);
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
finally {
try {
Policy.setPolicy(savedPolicy);
} catch(AccessControlException ok) {
return;
}
}
|
public void | testSubmitPrivilegedExceptionAction()A submitted a privileged exception action runs to completion
Policy savedPolicy = null;
try {
savedPolicy = Policy.getPolicy();
AdjustablePolicy policy = new AdjustablePolicy();
policy.addPermission(new RuntimePermission("getContextClassLoader"));
policy.addPermission(new RuntimePermission("setContextClassLoader"));
Policy.setPolicy(policy);
} catch(AccessControlException ok) {
return;
}
try {
ExecutorService e = new DirectExecutorService();
Future future = e.submit(Executors.callable(new PrivilegedExceptionAction() {
public Object run() {
return TEST_STRING;
}}));
Object result = future.get();
assertSame(TEST_STRING, result);
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
finally {
Policy.setPolicy(savedPolicy);
}
|
public void | testSubmitRunnable()Completed submit(runnable) returns successfully
try {
ExecutorService e = new DirectExecutorService();
Future<?> future = e.submit(new NoOpRunnable());
future.get();
assertTrue(future.isDone());
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
|
public void | testSubmitRunnable2()Completed submit(runnable, result) returns result
try {
ExecutorService e = new DirectExecutorService();
Future<String> future = e.submit(new NoOpRunnable(), TEST_STRING);
String result = future.get();
assertSame(TEST_STRING, result);
}
catch (ExecutionException ex) {
unexpectedException();
}
catch (InterruptedException ex) {
unexpectedException();
}
|
public void | testTimedInvokeAll1()timed invokeAll(null) throws NPE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAll(null, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAll2()timed invokeAll(empty collection) returns empty collection
ExecutorService e = new DirectExecutorService();
try {
List<Future<String>> r = e.invokeAll(new ArrayList<Callable<String>>(), MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
assertTrue(r.isEmpty());
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAll3()timed invokeAll(c) throws NPE if c has null elements
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(null);
e.invokeAll(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAll4()get of returned element of invokeAll(c) throws exception on failed task
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new NPETask());
List<Future<String>> result = e.invokeAll(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
assertEquals(1, result.size());
for (Iterator<Future<String>> it = result.iterator(); it.hasNext();)
it.next().get();
} catch(ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAll5()timed invokeAll(c) returns results of all completed tasks in c
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(new StringTask());
List<Future<String>> result = e.invokeAll(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
assertEquals(2, result.size());
for (Iterator<Future<String>> it = result.iterator(); it.hasNext();)
assertSame(TEST_STRING, it.next().get());
} catch (ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAll6()timed invokeAll cancels tasks not completed by timeout
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(Executors.callable(new MediumPossiblyInterruptedRunnable(), TEST_STRING));
l.add(new StringTask());
List<Future<String>> result = e.invokeAll(l, SMALL_DELAY_MS, TimeUnit.MILLISECONDS);
assertEquals(3, result.size());
Iterator<Future<String>> it = result.iterator();
Future<String> f1 = it.next();
Future<String> f2 = it.next();
Future<String> f3 = it.next();
assertTrue(f1.isDone());
assertFalse(f1.isCancelled());
assertTrue(f2.isDone());
assertTrue(f3.isDone());
assertTrue(f3.isCancelled());
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAllNullTimeUnit()timed invokeAll(null time unit) throws NPE
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
e.invokeAll(l, MEDIUM_DELAY_MS, null);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAny1()timed invokeAny(null) throws NPE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAny(null, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAny2()timed invokeAny(empty collection) throws IAE
ExecutorService e = new DirectExecutorService();
try {
e.invokeAny(new ArrayList<Callable<String>>(), MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch (IllegalArgumentException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAny3()timed invokeAny(c) throws NPE if c has null elements
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(null);
e.invokeAny(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch (NullPointerException success) {
} catch(Exception ex) {
ex.printStackTrace();
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAny4()timed invokeAny(c) throws ExecutionException if no task completes
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new NPETask());
e.invokeAny(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
} catch(ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAny5()timed invokeAny(c) returns result of some task in c
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
l.add(new StringTask());
String result = e.invokeAny(l, MEDIUM_DELAY_MS, TimeUnit.MILLISECONDS);
assertSame(TEST_STRING, result);
} catch (ExecutionException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|
public void | testTimedInvokeAnyNullTimeUnit()timed invokeAny(null time unit) throws NPE
ExecutorService e = new DirectExecutorService();
try {
ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();
l.add(new StringTask());
e.invokeAny(l, MEDIUM_DELAY_MS, null);
} catch (NullPointerException success) {
} catch(Exception ex) {
unexpectedException();
} finally {
joinPool(e);
}
|