[cvs] / jsr166 / src / test / tck / AbstractExecutorServiceTest.java Repository:
ViewVC logotype

Diff of /jsr166/src/test/tck/AbstractExecutorServiceTest.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21, Sat Nov 21 10:25:05 2009 UTC revision 1.22, Tue Dec 1 22:51:44 2009 UTC
# Line 345  Line 345 
345       * invokeAny(c) throws NPE if c has null elements       * invokeAny(c) throws NPE if c has null elements
346       */       */
347      public void testInvokeAny3() throws Exception {      public void testInvokeAny3() throws Exception {
         final CountDownLatch latch = new CountDownLatch(1);  
348          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
349          try {          List<Callable<Integer>> l = new ArrayList<Callable<Integer>>();
             ArrayList<Callable<Integer>> l  
                 = new ArrayList<Callable<Integer>>();  
350              l.add(new Callable<Integer>() {              l.add(new Callable<Integer>() {
351                        public Integer call() { return 5/0; }});                        public Integer call() { return 5/0; }});
352              l.add(null);              l.add(null);
353            try {
354              e.invokeAny(l);              e.invokeAny(l);
355              shouldThrow();              shouldThrow();
356          } catch (NullPointerException success) {          } catch (NullPointerException success) {
357          } finally {          } finally {
             latch.countDown();  
358              joinPool(e);              joinPool(e);
359          }          }
360      }      }
# Line 367  Line 364 
364       */       */
365      public void testInvokeAny4() throws InterruptedException {      public void testInvokeAny4() throws InterruptedException {
366          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
367          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
368              l.add(new NPETask());              l.add(new NPETask());
369            try {
370              e.invokeAny(l);              e.invokeAny(l);
371              shouldThrow();              shouldThrow();
372          } catch (ExecutionException success) {          } catch (ExecutionException success) {
# Line 385  Line 382 
382      public void testInvokeAny5() throws Exception {      public void testInvokeAny5() throws Exception {
383          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
384          try {          try {
385              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
386              l.add(new StringTask());              l.add(new StringTask());
387              l.add(new StringTask());              l.add(new StringTask());
388              String result = e.invokeAny(l);              String result = e.invokeAny(l);
# Line 427  Line 424 
424       */       */
425      public void testInvokeAll3() throws InterruptedException {      public void testInvokeAll3() throws InterruptedException {
426          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
427          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
428              l.add(new StringTask());              l.add(new StringTask());
429              l.add(null);              l.add(null);
430            try {
431              e.invokeAll(l);              e.invokeAll(l);
432              shouldThrow();              shouldThrow();
433          } catch (NullPointerException success) {          } catch (NullPointerException success) {
# Line 445  Line 442 
442      public void testInvokeAll4() throws Exception {      public void testInvokeAll4() throws Exception {
443          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
444          try {          try {
445              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
446              l.add(new NPETask());              l.add(new NPETask());
447              List<Future<String>> result = e.invokeAll(l);              List<Future<String>> futures = e.invokeAll(l);
448              assertEquals(1, result.size());              assertEquals(1, futures.size());
             for (Future<String> future : result) {  
449                  try {                  try {
450                      future.get();                  futures.get(0).get();
451                      shouldThrow();                      shouldThrow();
452                  } catch (ExecutionException success) {                  } catch (ExecutionException success) {
453                      Throwable cause = success.getCause();                  assertTrue(success.getCause() instanceof NullPointerException);
                     assertTrue(cause instanceof NullPointerException);  
                 }  
454              }              }
455          } finally {          } finally {
456              joinPool(e);              joinPool(e);
# Line 469  Line 463 
463      public void testInvokeAll5() throws Exception {      public void testInvokeAll5() throws Exception {
464          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
465          try {          try {
466              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
467              l.add(new StringTask());              l.add(new StringTask());
468              l.add(new StringTask());              l.add(new StringTask());
469              List<Future<String>> result = e.invokeAll(l);              List<Future<String>> futures = e.invokeAll(l);
470              assertEquals(2, result.size());              assertEquals(2, futures.size());
471              for (Future<String> future : result)              for (Future<String> future : futures)
472                  assertSame(TEST_STRING, future.get());                  assertSame(TEST_STRING, future.get());
473          } finally {          } finally {
474              joinPool(e);              joinPool(e);
# Line 501  Line 495 
495       */       */
496      public void testTimedInvokeAnyNullTimeUnit() throws Exception {      public void testTimedInvokeAnyNullTimeUnit() throws Exception {
497          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
498          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
499              l.add(new StringTask());              l.add(new StringTask());
500            try {
501              e.invokeAny(l, MEDIUM_DELAY_MS, null);              e.invokeAny(l, MEDIUM_DELAY_MS, null);
502              shouldThrow();              shouldThrow();
503          } catch (NullPointerException success) {          } catch (NullPointerException success) {
# Line 530  Line 524 
524       * timed invokeAny(c) throws NPE if c has null elements       * timed invokeAny(c) throws NPE if c has null elements
525       */       */
526      public void testTimedInvokeAny3() throws Exception {      public void testTimedInvokeAny3() throws Exception {
         final CountDownLatch latch = new CountDownLatch(1);  
527          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
528          try {          List<Callable<Integer>> l = new ArrayList<Callable<Integer>>();
             ArrayList<Callable<Integer>> l  
                 = new ArrayList<Callable<Integer>>();  
529              l.add(new Callable<Integer>() {              l.add(new Callable<Integer>() {
530                        public Integer call() { return 5/0; }});                        public Integer call() { return 5/0; }});
531              l.add(null);              l.add(null);
532            try {
533              e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);              e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);
534              shouldThrow();              shouldThrow();
535          } catch (NullPointerException success) {          } catch (NullPointerException success) {
536          } finally {          } finally {
             latch.countDown();  
537              joinPool(e);              joinPool(e);
538          }          }
539      }      }
# Line 552  Line 543 
543       */       */
544      public void testTimedInvokeAny4() throws Exception {      public void testTimedInvokeAny4() throws Exception {
545          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
546          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
547              l.add(new NPETask());              l.add(new NPETask());
548            try {
549              e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);              e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);
550              shouldThrow();              shouldThrow();
551          } catch (ExecutionException success) {          } catch (ExecutionException success) {
# Line 570  Line 561 
561      public void testTimedInvokeAny5() throws Exception {      public void testTimedInvokeAny5() throws Exception {
562          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
563          try {          try {
564              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
565              l.add(new StringTask());              l.add(new StringTask());
566              l.add(new StringTask());              l.add(new StringTask());
567              String result = e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);              String result = e.invokeAny(l, MEDIUM_DELAY_MS, MILLISECONDS);
# Line 599  Line 590 
590       */       */
591      public void testTimedInvokeAllNullTimeUnit() throws InterruptedException {      public void testTimedInvokeAllNullTimeUnit() throws InterruptedException {
592          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
593          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
594              l.add(new StringTask());              l.add(new StringTask());
595            try {
596              e.invokeAll(l, MEDIUM_DELAY_MS, null);              e.invokeAll(l, MEDIUM_DELAY_MS, null);
597              shouldThrow();              shouldThrow();
598          } catch (NullPointerException success) {          } catch (NullPointerException success) {
# Line 628  Line 619 
619       */       */
620      public void testTimedInvokeAll3() throws InterruptedException {      public void testTimedInvokeAll3() throws InterruptedException {
621          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
622          try {          List<Callable<String>> l = new ArrayList<Callable<String>>();
             ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();  
623              l.add(new StringTask());              l.add(new StringTask());
624              l.add(null);              l.add(null);
625            try {
626              e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);              e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);
627              shouldThrow();              shouldThrow();
628          } catch (NullPointerException success) {          } catch (NullPointerException success) {
# Line 646  Line 637 
637      public void testTimedInvokeAll4() throws Exception {      public void testTimedInvokeAll4() throws Exception {
638          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
639          try {          try {
640              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
641              l.add(new NPETask());              l.add(new NPETask());
642              List<Future<String>> result = e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);              List<Future<String>> futures =
643              assertEquals(1, result.size());                  e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);
644              for (Future<String> future : result) {              assertEquals(1, futures.size());
645                  try {                  try {
646                      future.get();                  futures.get(0).get();
647                      shouldThrow();                      shouldThrow();
648                  } catch (ExecutionException success) {                  } catch (ExecutionException success) {
649                      assertTrue(success.getCause() instanceof NullPointerException);                      assertTrue(success.getCause() instanceof NullPointerException);
650                  }                  }
             }  
651          } finally {          } finally {
652              joinPool(e);              joinPool(e);
653          }          }
# Line 669  Line 659 
659      public void testTimedInvokeAll5() throws Exception {      public void testTimedInvokeAll5() throws Exception {
660          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
661          try {          try {
662              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
663              l.add(new StringTask());              l.add(new StringTask());
664              l.add(new StringTask());              l.add(new StringTask());
665              List<Future<String>> result = e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);              List<Future<String>> futures =
666              assertEquals(2, result.size());                  e.invokeAll(l, MEDIUM_DELAY_MS, MILLISECONDS);
667              for (Future<String> future : result)              assertEquals(2, futures.size());
668                for (Future<String> future : futures)
669                  assertSame(TEST_STRING, future.get());                  assertSame(TEST_STRING, future.get());
670          } finally {          } finally {
671              joinPool(e);              joinPool(e);
# Line 687  Line 678 
678      public void testTimedInvokeAll6() throws InterruptedException {      public void testTimedInvokeAll6() throws InterruptedException {
679          ExecutorService e = new DirectExecutorService();          ExecutorService e = new DirectExecutorService();
680          try {          try {
681              ArrayList<Callable<String>> l = new ArrayList<Callable<String>>();              List<Callable<String>> l = new ArrayList<Callable<String>>();
682              l.add(new StringTask());              l.add(new StringTask());
683              l.add(Executors.callable(new MediumPossiblyInterruptedRunnable(), TEST_STRING));              l.add(Executors.callable(new MediumPossiblyInterruptedRunnable(), TEST_STRING));
684              l.add(new StringTask());              l.add(new StringTask());
685              List<Future<String>> result = e.invokeAll(l, SMALL_DELAY_MS, MILLISECONDS);              List<Future<String>> futures =
686              assertEquals(3, result.size());                  e.invokeAll(l, SMALL_DELAY_MS, MILLISECONDS);
687              Iterator<Future<String>> it = result.iterator();              assertEquals(3, futures.size());
688                Iterator<Future<String>> it = futures.iterator();
689              Future<String> f1 = it.next();              Future<String> f1 = it.next();
690              Future<String> f2 = it.next();              Future<String> f2 = it.next();
691              Future<String> f3 = it.next();              Future<String> f3 = it.next();

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8