Author: djencks
Date: Mon Jan 31 11:16:33 2005
New Revision: 149290
URL: http://svn.apache.org/viewcvs?view=rev&rev=149290
Log:
add a smidgen of validation
Modified:
geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java
Modified: geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java?view=diff&r1=149289&r2=149290
==============================================================================
--- geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java
(original)
+++ geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java
Mon Jan 31 11:16:33 2005
@@ -84,11 +84,20 @@
}
public WorkInfo schedule(UserTaskFactory userTaskFactory, String key, Object userId,
Object userInfo, long delay) throws PersistenceException, RollbackException, SystemException
{
+ if (delay < 0) {
+ throw new IllegalArgumentException("Negative delay: " + delay);
+ }
Date time = new Date(System.currentTimeMillis() + delay);
return schedule(key, userTaskFactory, userId, userInfo, time);
}
public WorkInfo schedule(String key, UserTaskFactory userTaskFactory, Object userId,
Object userInfo, Date time) throws PersistenceException, RollbackException, SystemException
{
+ if (time ==null) {
+ throw new IllegalArgumentException("No time supplied");
+ }
+ if (time.getTime() < 0) {
+ throw new IllegalArgumentException("Negative time: " + time.getTime());
+ }
WorkInfo worker = createWorker(key, userTaskFactory, executorTaskFactory, userId,
userInfo, time, null, false);
registerSynchronization(new ScheduleSynchronization(worker.getExecutorFeedingTimerTask(),
time));
addWorkInfo(worker);
@@ -96,11 +105,26 @@
}
public WorkInfo schedule(String key, UserTaskFactory userTaskFactory, Object userInfo,
long delay, long period, Object userId) throws PersistenceException, RollbackException, SystemException
{
+ if (delay < 0) {
+ throw new IllegalArgumentException("Negative delay: " + delay);
+ }
+ if (period < 0) {
+ throw new IllegalArgumentException("Negative period: " + period);
+ }
Date time = new Date(System.currentTimeMillis() + delay);
return schedule(key, userTaskFactory, userId, userInfo, time, period);
}
public WorkInfo schedule(String key, UserTaskFactory userTaskFactory, Object userId,
Object userInfo, Date firstTime, long period) throws PersistenceException, RollbackException,
SystemException {
+ if (firstTime ==null) {
+ throw new IllegalArgumentException("No time supplied");
+ }
+ if (firstTime.getTime() < 0) {
+ throw new IllegalArgumentException("Negative time: " + firstTime.getTime());
+ }
+ if (period < 0) {
+ throw new IllegalArgumentException("Negative period: " + period);
+ }
WorkInfo worker = createWorker(key, userTaskFactory, executorTaskFactory, userId,
userInfo, firstTime, new Long(period), false);
registerSynchronization(new ScheduleRepeatedSynchronization(worker.getExecutorFeedingTimerTask(),
firstTime, period));
addWorkInfo(worker);
@@ -108,11 +132,26 @@
}
public WorkInfo scheduleAtFixedRate(String key, UserTaskFactory userTaskFactory, Object
userId, Object userInfo, long delay, long period) throws PersistenceException, RollbackException,
SystemException {
+ if (delay < 0) {
+ throw new IllegalArgumentException("Negative delay: " + delay);
+ }
+ if (period < 0) {
+ throw new IllegalArgumentException("Negative period: " + period);
+ }
Date time = new Date(System.currentTimeMillis() + delay);
return scheduleAtFixedRate(key, userTaskFactory, userId, userInfo, time, period);
}
public WorkInfo scheduleAtFixedRate(String key, UserTaskFactory userTaskFactory, Object
userId, Object userInfo, Date firstTime, long period) throws PersistenceException, RollbackException,
SystemException {
+ if (firstTime ==null) {
+ throw new IllegalArgumentException("No time supplied");
+ }
+ if (firstTime.getTime() < 0) {
+ throw new IllegalArgumentException("Negative time: " + firstTime.getTime());
+ }
+ if (period < 0) {
+ throw new IllegalArgumentException("Negative period: " + period);
+ }
WorkInfo worker = createWorker(key, userTaskFactory, executorTaskFactory, userId,
userInfo, firstTime, new Long(period), true);
registerSynchronization(new ScheduleAtFixedRateSynchronization(worker.getExecutorFeedingTimerTask(),
firstTime, period));
addWorkInfo(worker);
@@ -185,6 +224,9 @@
}
private WorkInfo createWorker(String key, UserTaskFactory userTaskFactory, ExecutorTaskFactory
executorTaskFactory, Object userId, Object userInfo, Date time, Long period, boolean atFixedRate)
throws PersistenceException {
+ if (time == null) {
+ throw new IllegalArgumentException("Null initial time");
+ }
WorkInfo workInfo = new WorkInfo(key, userId, userInfo, time, period, atFixedRate);
//save and assign id
workerPersistence.save(workInfo);
|