Scarab commit: svn commit: r10174 - trunk/src/java/org/tigris/scarab: om workflow
| Newsgroups | gmane.comp.java.scarab.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: dabbous
Date: 2006-06-13 11:51:46-0700
New Revision: 10174
Modified:
trunk/src/java/org/tigris/scarab/om/Transition.java
trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java
Log:
reworked fix to potential NPE problem related to toOptionId and fromOptionId
in Transition. Now the null is correctly interpreted. Before it was leading
to NPE. The intermediate solution did not take into account that null and 0 are
differnet meaningfull value for optionId.
Modified: trunk/src/java/org/tigris/scarab/om/Transition.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/om/Transition.java?view=diff&rev=10174&p1=trunk/src/java/org/tigris/scarab/om/Transition.java&p2=trunk/src/java/org/tigris/scarab/om/Transition.java&r1=10173&r2=10174
==============================================================================
--- trunk/src/java/org/tigris/scarab/om/Transition.java (original)
+++ trunk/src/java/org/tigris/scarab/om/Transition.java 2006-06-13 11:51:46-0700
@@ -94,30 +94,6 @@
}
return role;
}
-
- /**
- * Get the FromOptionId
- * Note: This method overwrites the generated base method.
- * @return Integer
- */
- public Integer getFromOptionId()
- {
- Integer result = super.getFromOptionId();
- if (result == null) result = new Integer(0);
- return result;
- }
-
- /**
- * Get the ToOptionId
- * Note: This method overwrites the generated base method.
- * @return Integer
- */
- public Integer getToOptionId()
- {
- Integer result = super.getToOptionId();
- if (result == null) result = new Integer(0);
- return result;
- }
public AttributeOption getFrom()
{
Modified: trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java?view=diff&rev=10174&p1=trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java&p2=trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java&r1=10173&r2=10174
==============================================================================
--- trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java (original)
+++ trunk/src/java/org/tigris/scarab/workflow/CheapWorkflow.java 2006-06-13 11:51:46-0700
@@ -430,18 +430,29 @@
List availableOptions)
{
Integer fromId = t.getFromOptionId();
- Integer toId = t.getToOptionId();
- Iterator iter = availableOptions.iterator();
+ Integer toId = t.getToOptionId();
+ Iterator iter = availableOptions.iterator();
int count = 0;
- if (!fromId.equals(toId))
+
+ if(toId == null)
{
- if (fromId.intValue() == 0)
+ // allow any target option -> return true if at least one available option exists
+ return availableOptions.size() > 0;
+ }
+
+
+ if (fromId == null || !fromId.equals(toId))
+ {
+ if (fromId==null || fromId.intValue() == 0)
+ {
+ // fromId is either any option (null), or emtpy option (0)
count++;
+ }
while (iter.hasNext() && count < 2)
{
RModuleOption attributeOption = (RModuleOption) iter.next();
Integer id = attributeOption.getOptionId();
- if (id.equals(fromId) || id.equals(toId))
+ if ( (fromId!=null && id.equals(fromId)) || id.equals(toId))
{
count++;
}