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);
}
}