djencks 2005/04/01 14:22:35
Modified: modules/core/src/java/org/openejb/timer
BasicTimerServiceImpl.java
Log:
Temporary hack to reduce annoyance from GERONIMO-623
Revision Changes Path
1.4 +19 -2
openejb/modules/core/src/java/org/openejb/timer/BasicTimerServiceImpl.java
Index: BasicTimerServiceImpl.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/timer/BasicTimerServiceImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BasicTimerServiceImpl.java 1 Mar 2005 23:34:34 -0000 1.3
+++ BasicTimerServiceImpl.java 1 Apr 2005 19:22:35 -0000 1.4
@@ -71,6 +71,7 @@
import org.apache.geronimo.timer.WorkInfo;
import org.apache.geronimo.transaction.context.TransactionContext;
import org.apache.geronimo.transaction.context.TransactionContextManager;
+import org.apache.geronimo.kernel.proxy.DeadProxyException;
import org.openejb.EJBInvocation;
/**
@@ -195,8 +196,20 @@
return timers;
}
+ //TODO HACK SEE GERONIMO-623
+ private boolean notified = false;
public TimerImpl getTimerById(Long id) {
- WorkInfo workInfo = persistentTimer.getWorkInfo(id);
+ WorkInfo workInfo = null;
+ try {
+ workInfo = persistentTimer.getWorkInfo(id);
+ } catch (DeadProxyException e) {
+ //TODO HACK SEE GERONIMO-623
+ notified = true;
+ if (notified) {
+ return null;
+ }
+ throw new RuntimeException("Dead proxy for ejb " + key);
+ }
if (workInfo != null) {
TimerImpl timer = (TimerImpl) workInfo.getClientHandle();
return timer;
@@ -248,6 +261,10 @@
public void run() {
TimerImpl timerImpl = timerService.getTimerById(new
Long(timerId));
+ //TODO HACK SEE GERONIMO-623
+ if (timerImpl == null) {
+ return;
+ }
EJBInvocation invocation =
timerService.invocationFactory.getEJBTimeoutInvocation(timerImpl.getUserId(),
timerImpl);
// set the transaction context into the invocation object