ramc        01/03/15 09:10:49

  Modified:    src/java/org/apache/cornerstone/services/scheduler
                        TimeTrigger.java PeriodicTimeTrigger.java
                        CronTimeTrigger.java
  Log:
  Patch for TimeScheduler block. This should fix the problem with timeout when the 
trigger is rescheduled.
  
  Revision  Changes    Path
  1.2       +11 -1     
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/TimeTrigger.java
  
  Index: TimeTrigger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/TimeTrigger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TimeTrigger.java  2001/02/22 07:51:35     1.1
  +++ TimeTrigger.java  2001/03/15 17:10:42     1.2
  @@ -12,9 +12,10 @@
    * Triggers can be time-based, event-based or other.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a>
    */
   public interface TimeTrigger
  -    extends Trigger
  +    extends Trigger, Cloneable
   {
       /**
        * Retrieve the next time at trigger activates relative to another time.
  @@ -22,4 +23,13 @@
        * @return the time at which the trigger activates
        */
       long getTimeAfter( long time );
  +
  +    /**
  +     * Get a clone of the original TimeTrigger with adjusted time sensitive info.
  +     *
  +     * @return a new copy of the TimeTrigger
  +     * @exception CloneNotSupportedException if trigger cannot be cloned
  +     */
  +    TimeTrigger getClone()
  +        throws CloneNotSupportedException;
   }
  
  
  
  1.2       +17 -4     
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/PeriodicTimeTrigger.java
  
  Index: PeriodicTimeTrigger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/PeriodicTimeTrigger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PeriodicTimeTrigger.java  2001/02/22 07:51:35     1.1
  +++ PeriodicTimeTrigger.java  2001/03/15 17:10:44     1.2
  @@ -11,12 +11,14 @@
    * This is the triggers based on a start time and period.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a>
    */
   public class PeriodicTimeTrigger
       implements TimeTrigger
   {
       protected final long    m_startTime;
       protected final long    m_period;
  +    private   final long    m_triggerTime;
       
       public PeriodicTimeTrigger( final int startTime, final int period )
       {
  @@ -24,13 +26,14 @@
   
           if( -1 == startTime )
           {
  -            m_startTime = current;
  +            m_triggerTime = current;
           }
           else
           {
  -            m_startTime = current + startTime;
  +            m_triggerTime = current + startTime;
           }
   
  +        m_startTime = startTime;
           m_period = period;
       }
   
  @@ -41,16 +44,26 @@
        */
       public long getTimeAfter( final long time )
       {
  -        if( time <= m_startTime ) return m_startTime;
  +        if( time <= m_triggerTime ) return m_triggerTime;
           else
           {
               if( -1 == m_period ) return -1;
   
  -            final long over = time - m_startTime;
  +            final long over = time - m_triggerTime;
               final long remainder = over % m_period;
   
               return time + ( m_period - remainder );
           }
  +    }
  +
  +    /**
  +     * Get a clone of the original TimeTrigger with adjusted time sensitive info.
  +     *
  +     * @return a new copy of this TimeTrigger
  +     */
  +    public TimeTrigger getClone()
  +    {
  +        return new PeriodicTimeTrigger( (int) m_startTime, (int) m_period );
       }
   
       public String toString()
  
  
  
  1.2       +12 -0     
jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/CronTimeTrigger.java
  
  Index: CronTimeTrigger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/services/scheduler/CronTimeTrigger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CronTimeTrigger.java      2001/02/22 07:51:35     1.1
  +++ CronTimeTrigger.java      2001/03/15 17:10:45     1.2
  @@ -15,6 +15,7 @@
    * This is the holder triggers based on standard crontabs format.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a>
    */
   public class CronTimeTrigger
       implements TimeTrigger
  @@ -223,6 +224,17 @@
           
           //return time in millis
           return next.getTime().getTime();  
  +    }
  +
  +    /**
  +     * Get a clone of the original TimeTrigger.
  +     *
  +     * @return a new copy of this TimeTrigger
  +     */
  +    public TimeTrigger getClone()
  +        throws CloneNotSupportedException
  +    {
  +        return (TimeTrigger) this.clone();
       }
   
       public String toString()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to