You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/10/17 22:01:28 UTC

svn commit: r1533236 - /sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java

Author: cziegeler
Date: Thu Oct 17 20:01:27 2013
New Revision: 1533236

URL: http://svn.apache.org/r1533236
Log:
SLING-3187 : Scheduling an invalid cron expression results in a RuntimeException

Modified:
    sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java

Modified: sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java?rev=1533236&r1=1533235&r2=1533236&view=diff
==============================================================================
--- sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java (original)
+++ sling/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java Thu Oct 17 20:01:27 2013
@@ -36,6 +36,7 @@ import org.apache.sling.commons.threads.
 import org.apache.sling.commons.threads.ThreadPoolManager;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
+import org.quartz.CronExpression;
 import org.quartz.CronScheduleBuilder;
 import org.quartz.JobBuilder;
 import org.quartz.JobDataMap;
@@ -468,7 +469,7 @@ public class QuartzScheduler implements 
      */
     public ScheduleOptions AT(final Date date) {
         if ( date == null ) {
-            throw new IllegalArgumentException("Date can't be null");
+            return new InternalScheduleOptions(new IllegalArgumentException("Date can't be null"));
         }
         return new InternalScheduleOptions( TriggerBuilder.newTrigger()
             .startAt(date));
@@ -506,6 +507,9 @@ public class QuartzScheduler implements 
         if ( expression == null ) {
             return new InternalScheduleOptions(new IllegalArgumentException("Expression can't be null"));
         }
+        if ( !CronExpression.isValidExpression(expression) ) {
+            return new InternalScheduleOptions(new IllegalArgumentException("Expressionis invalid : " + expression));
+        }
         return new InternalScheduleOptions( TriggerBuilder.newTrigger()
                 .withSchedule(CronScheduleBuilder.cronSchedule(expression)));
     }