Scarab commit: svn commit: r10174 - trunk/src/java/org/tigris/scarab: om workflow

[email protected]
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++;
                 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.