djencks 2005/01/31 19:58:11
Modified: modules/core/src/java/org/openejb/timer
BasicTimerService.java TimerHandleImpl.java
Log:
Make timer handles work, add some error detection and handling
Revision Changes Path
1.2 +9 -4
openejb/modules/core/src/java/org/openejb/timer/BasicTimerService.java
Index: BasicTimerService.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/timer/BasicTimerService.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BasicTimerService.java 20 Jul 2004 23:40:03 -0000 1.1
+++ BasicTimerService.java 1 Feb 2005 00:58:10 -0000 1.2
@@ -55,6 +55,7 @@
import javax.ejb.EJBException;
import javax.ejb.Timer;
+import javax.ejb.NoSuchObjectLocalException;
import javax.management.ObjectName;
import javax.transaction.RollbackException;
import javax.transaction.Status;
@@ -186,10 +187,14 @@
return timers;
}
- private TimerImpl getTimerById(Long id) {
+ public TimerImpl getTimerById(Long id) {
WorkInfo workInfo = persistentTimer.getWorkInfo(id);
- TimerImpl timer = (TimerImpl) workInfo.getClientHandle();
- return timer;
+ if (workInfo != null) {
+ TimerImpl timer = (TimerImpl) workInfo.getClientHandle();
+ return timer;
+ } else {
+ throw new NoSuchObjectLocalException("No timer");
+ }
}
void registerCancelSynchronization(Synchronization
cancelSynchronization) throws RollbackException, SystemException {
1.2 +2 -2
openejb/modules/core/src/java/org/openejb/timer/TimerHandleImpl.java
Index: TimerHandleImpl.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/timer/TimerHandleImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TimerHandleImpl.java 18 Jul 2004 22:24:00 -0000 1.1
+++ TimerHandleImpl.java 1 Feb 2005 00:58:11 -0000 1.2
@@ -78,7 +78,7 @@
public Timer getTimer() throws EJBException, IllegalStateException,
NoSuchObjectLocalException {
Kernel kernel = Kernel.getKernel(kernelName);
try {
- return (Timer) kernel.invoke(timerSourceName, "getWorkInfoById",
new Object[] {new Long(id)}, new String[] {Long.class.getName()});
+ return (Timer) kernel.invoke(timerSourceName, "getTimerById",
new Object[] {new Long(id)}, new String[] {Long.class.getName()});
} catch (Exception e) {
throw new EJBException(e);
}