You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2008/03/18 21:25:54 UTC

svn commit: r638554 - in /geronimo/sandbox/concurrent/geronimo-concurrent-core/src: main/java/org/apache/geronimo/concurrent/thread/ test/java/org/apache/geronimo/concurrent/ test/java/org/apache/geronimo/concurrent/executor/

Author: gawor
Date: Tue Mar 18 13:25:46 2008
New Revision: 638554

URL: http://svn.apache.org/viewvc?rev=638554&view=rev
Log:
added a new test when a task throws an exception

Modified:
    geronimo/sandbox/concurrent/geronimo-concurrent-core/src/main/java/org/apache/geronimo/concurrent/thread/ManagedThreadFactoryUtils.java
    geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestCallable.java
    geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestRunnable.java
    geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/executor/BasicManagedExecutorServiceTest.java

Modified: geronimo/sandbox/concurrent/geronimo-concurrent-core/src/main/java/org/apache/geronimo/concurrent/thread/ManagedThreadFactoryUtils.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/concurrent/geronimo-concurrent-core/src/main/java/org/apache/geronimo/concurrent/thread/ManagedThreadFactoryUtils.java?rev=638554&r1=638553&r2=638554&view=diff
==============================================================================
--- geronimo/sandbox/concurrent/geronimo-concurrent-core/src/main/java/org/apache/geronimo/concurrent/thread/ManagedThreadFactoryUtils.java (original)
+++ geronimo/sandbox/concurrent/geronimo-concurrent-core/src/main/java/org/apache/geronimo/concurrent/thread/ManagedThreadFactoryUtils.java Tue Mar 18 13:25:46 2008
@@ -54,7 +54,7 @@
         }
         
         public Thread newThread(Runnable runnable) {                
-            runnable = new ManagedRunnable(runnable, this.managedContext, associateTask);
+            runnable = new ManagedRunnable(runnable, this.managedContext, this.associateTask);
             return this.factory.newThread(runnable);
         }
                

Modified: geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestCallable.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestCallable.java?rev=638554&r1=638553&r2=638554&view=diff
==============================================================================
--- geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestCallable.java (original)
+++ geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestCallable.java Tue Mar 18 13:25:46 2008
@@ -23,13 +23,19 @@
 public class TestCallable implements Callable<Object> {
     private List list = new ArrayList();
     private long delay;
+    private boolean fail;
     
     public TestCallable() {
-        this(0);
+        this(0, false);
     }
     
     public TestCallable(long delay) {
+        this(delay, false);
+    }
+    
+    public TestCallable(long delay, boolean fail) {
         this.delay = delay;
+        this.fail = fail;
     }
     
     public List getList() {
@@ -42,6 +48,9 @@
             Thread.sleep(this.delay);
         }
         list.add(TestContextHandler.getCurrentObject());
+        if (this.fail) {
+            throw new IllegalStateException("Abort");
+        }
         return this;
     } 
 } 

Modified: geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestRunnable.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestRunnable.java?rev=638554&r1=638553&r2=638554&view=diff
==============================================================================
--- geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestRunnable.java (original)
+++ geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/TestRunnable.java Tue Mar 18 13:25:46 2008
@@ -21,8 +21,17 @@
 
 public class TestRunnable implements Runnable { 
     
-    private List list = new ArrayList();     
+    private List list = new ArrayList();
+    private boolean fail;     
         
+    public TestRunnable() {
+        this(false);
+    }
+    
+    public TestRunnable(boolean fail) {
+        this.fail = fail;
+    }
+    
     public List getList() {
         return this.list;
     }
@@ -30,6 +39,9 @@
     public void run() {
         System.out.println(Thread.currentThread());
         list.add(TestContextHandler.getCurrentObject());
+        if (this.fail) {
+            throw new IllegalStateException("Abort");
+        }
     }    
     
 }

Modified: geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/executor/BasicManagedExecutorServiceTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/executor/BasicManagedExecutorServiceTest.java?rev=638554&r1=638553&r2=638554&view=diff
==============================================================================
--- geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/executor/BasicManagedExecutorServiceTest.java (original)
+++ geronimo/sandbox/concurrent/geronimo-concurrent-core/src/test/java/org/apache/geronimo/concurrent/executor/BasicManagedExecutorServiceTest.java Tue Mar 18 13:25:46 2008
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CancellationException;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -123,6 +124,62 @@
         assertEquals(Arrays.asList(expected), task3.getList());  
         List<TestManagedTaskListener.CallbackInfo> callbacks3 = createCallbackInfo(f3);
         compareCallbacks(callbacks3, listener3.getCallbacks(f3));
+    }
+    
+    public void testFailSubmitWithListener() throws Exception {
+        // test1
+        TestRunnable task1 = new TestRunnable(true);
+        TestManagedTaskListener listener1 = new TestManagedTaskListener();
+
+        Future f1 = service.submit(task1, listener1);
+        
+        try {
+            f1.get(5, TimeUnit.SECONDS);
+            fail("Did not throw exception");
+        } catch (ExecutionException e) {
+            assertTrue("Unexpected exception " + e.getMessage(), 
+                       e.getCause() instanceof IllegalStateException);
+        }
+        
+        assertEquals(Arrays.asList(expected), task1.getList());
+        List<TestManagedTaskListener.CallbackInfo> callbacks1 = createCallbackInfo(f1);
+        compareCallbacks(callbacks1, listener1.getCallbacks(f1));
+                
+        // test2
+        TestRunnable task2 = new TestRunnable(true);
+        TestManagedTaskListener listener2 = new TestManagedTaskListener();
+        Integer value = new Integer(5);
+        
+        Future f2 = service.submit(task2, value, listener2);
+        
+        try {
+            f2.get(5, TimeUnit.SECONDS);
+            fail("Did not throw exception");
+        } catch (ExecutionException e) {
+            assertTrue("Unexpected exception " + e.getMessage(), 
+                       e.getCause() instanceof IllegalStateException);
+        }
+        
+        assertEquals(Arrays.asList(expected), task2.getList());  
+        List<TestManagedTaskListener.CallbackInfo> callbacks2 = createCallbackInfo(f2);
+        compareCallbacks(callbacks2, listener2.getCallbacks(f2));
+        
+        // test3        
+        TestCallable task3 = new TestCallable(0, true);
+        TestManagedTaskListener listener3 = new TestManagedTaskListener();
+        
+        Future f3 = service.submit(task3, listener3);
+        
+        try {
+            f3.get(5, TimeUnit.SECONDS);
+        } catch (ExecutionException e) {
+            assertTrue("Unexpected exception " + e.getMessage(), 
+                       e.getCause() instanceof IllegalStateException);
+        }
+        
+        assertEquals(Arrays.asList(expected), task3.getList());  
+        List<TestManagedTaskListener.CallbackInfo> callbacks3 = createCallbackInfo(f3);
+        compareCallbacks(callbacks3, listener3.getCallbacks(f3));        
     }
     
     public void testInvokeAll() throws Exception {