craigmcc 01/08/21 18:04:37
Modified: workflow/src/java/org/apache/commons/workflow/base
BaseContext.java
Log:
When execute() is called at a point at which "nextStep" is null, assume
that we need to start at the beginning of the Activity. Otherwise, if you
do the following sequence:
Context context = ...
Activity activity = new BaseActivity();
context.setActivity(activity);
and *then* add some steps to the activity, they never get executed.
As a side effect, this change allows you to rerun an Activity if you wish.
Revision Changes Path
1.7 +7 -5
jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java
Index: BaseContext.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- BaseContext.java 2001/08/20 04:14:19 1.6
+++ BaseContext.java 2001/08/22 01:04:37 1.7
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
1.6 2001/08/20 04:14:19 craigmcc Exp $
- * $Revision: 1.6 $
- * $Date: 2001/08/20 04:14:19 $
+ * $Header:
/home/cvs/jakarta-commons-sandbox/workflow/src/java/org/apache/commons/workflow/base/BaseContext.java,v
1.7 2001/08/22 01:04:37 craigmcc Exp $
+ * $Revision: 1.7 $
+ * $Date: 2001/08/22 01:04:37 $
*
* ====================================================================
*
@@ -84,7 +84,7 @@
* class. If it is used in a multiple thread environment, callers must
* take suitable precations.</p>
*
- * @version $Revision: 1.6 $ $Date: 2001/08/20 04:14:19 $
+ * @version $Revision: 1.7 $ $Date: 2001/08/22 01:04:37 $
* @author Craig R. McClanahan
*/
@@ -511,7 +511,9 @@
// Do we actually have a next step to be performed
if (activity == null)
throw new IllegalStateException("No Activity has been selected");
- else if (nextStep == null)
+ if (nextStep == null)
+ nextStep = activity.getFirstStep();
+ if (nextStep == null)
throw new IllegalStateException("Activity has been completed");
// Reset the suspend flag until set by another step