You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2013/02/06 14:07:56 UTC

svn commit: r1442950 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb: core/timer/EjbTimerServiceImpl.java resource/quartz/QuartzResourceAdapter.java

Author: andygumbrecht
Date: Wed Feb  6 13:07:56 2013
New Revision: 1442950

URL: http://svn.apache.org/viewvc?rev=1442950&view=rev
Log:
Always latch on error

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java?rev=1442950&r1=1442949&r2=1442950&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/core/timer/EjbTimerServiceImpl.java Wed Feb  6 13:07:56 2013
@@ -331,7 +331,7 @@ public class EjbTimerServiceImpl impleme
             }
 
             final CountDownLatch shutdownWait = new CountDownLatch(1);
-            final AtomicReference<Exception> ex = new AtomicReference<Exception>();
+            final AtomicReference<Throwable> ex = new AtomicReference<Throwable>();
 
             String n = "Unknown";
             try {
@@ -358,8 +358,9 @@ public class EjbTimerServiceImpl impleme
                         //Shutdown, but give running jobs a chance to complete.
                         //User scheduled jobs should really implement InterruptableJob
                         s.shutdown(true);
-                    } catch (Exception e) {
+                    } catch (Throwable e) {
                         ex.set(e);
+                        shutdownWait.countDown();
                     }
                 }
             };
@@ -385,7 +386,7 @@ public class EjbTimerServiceImpl impleme
                                 //Force a shutdown without waiting for jobs to complete.
                                 s.shutdown(false);
                                 log.warning("Forced " + name + " shutdown - Jobs may be incomplete");
-                            } catch (Exception e) {
+                            } catch (Throwable e) {
                                 ex.set(e);
                             }
                         }
@@ -401,7 +402,7 @@ public class EjbTimerServiceImpl impleme
                         //Ignore
                     }
                 }
-            } catch (Exception e) {
+            } catch (Throwable e) {
                 ex.set(e);
             }
 

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java?rev=1442950&r1=1442949&r2=1442950&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java Wed Feb  6 13:07:56 2013
@@ -47,7 +47,7 @@ public class QuartzResourceAdapter imple
     public static final String OPENEJB_QUARTZ_TIMEOUT = "openejb.quartz.timeout";
 
     //Start and stop may be called from different threads so use atomics
-    private final AtomicReference<Exception> ex = new AtomicReference<Exception>();
+    private final AtomicReference<Throwable> ex = new AtomicReference<Throwable>();
     private final AtomicReference<Scheduler> scheduler = new AtomicReference<Scheduler>();
     private final AtomicReference<BootstrapContext> bootstrapContext = new AtomicReference<BootstrapContext>();
     private final AtomicReference<Thread> startThread = new AtomicReference<Thread>();
@@ -105,7 +105,7 @@ public class QuartzResourceAdapter imple
 
                     QuartzResourceAdapter.this.scheduler.get().start();
 
-                } catch (Exception e) {
+                } catch (Throwable e) {
                     QuartzResourceAdapter.this.ex.set(e);
                     signal.countDown();
                 }
@@ -122,7 +122,7 @@ public class QuartzResourceAdapter imple
             //Ignore
         }
 
-        final Exception exception = ex.get();
+        final Throwable exception = ex.get();
         if (null != exception) {
             final String err = "Error creating Quartz Scheduler";
             org.apache.openejb.util.Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources").error(err, exception);
@@ -183,8 +183,9 @@ public class QuartzResourceAdapter imple
                         //Shutdown, but give running jobs a chance to complete.
                         //User scheduled jobs should really implement InterruptableJob
                         s.shutdown(true);
-                    } catch (Exception e) {
+                    } catch (Throwable e) {
                         QuartzResourceAdapter.this.ex.set(e);
+                        shutdownWait.countDown();
                     }
                 }
             };
@@ -210,7 +211,7 @@ public class QuartzResourceAdapter imple
                                 //Force a shutdown without waiting for jobs to complete.
                                 s.shutdown(false);
                                 org.apache.openejb.util.Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources").warning("Forced Quartz stop - Jobs may be incomplete");
-                            } catch (Exception e) {
+                            } catch (Throwable e) {
                                 QuartzResourceAdapter.this.ex.set(e);
                             }
                         }
@@ -226,7 +227,7 @@ public class QuartzResourceAdapter imple
                         //Ignore
                     }
                 }
-            } catch (Exception e) {
+            } catch (Throwable e) {
                 ex.set(e);
             }
         }