Scarab commit: svn commit: r10173 - branches/release/b21/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 03:42:52-0700
New Revision: 10173

Modified:
   branches/release/b21/src/java/org/tigris/scarab/om/Transition.java
   branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java

Log:
reworked NPE problem with CheapWorkflow and transitions, see SCB1735 .

Modified: branches/release/b21/src/java/org/tigris/scarab/om/Transition.java
Url: http://scarab.tigris.org/source/browse/scarab/branches/release/b21/src/java/org/tigris/scarab/om/Transition.java?view=diff&rev=10173&p1=branches/release/b21/src/java/org/tigris/scarab/om/Transition.java&p2=branches/release/b21/src/java/org/tigris/scarab/om/Transition.java&r1=10172&r2=10173
==============================================================================
--- branches/release/b21/src/java/org/tigris/scarab/om/Transition.java	(original)
+++ branches/release/b21/src/java/org/tigris/scarab/om/Transition.java	2006-06-13 03:42:52-0700
@@ -95,31 +95,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()
     {
         AttributeOption from = null;

Modified: branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java
Url: http://scarab.tigris.org/source/browse/scarab/branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java?view=diff&rev=10173&p1=branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java&p2=branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java&r1=10172&r2=10173
==============================================================================
--- branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java	(original)
+++ branches/release/b21/src/java/org/tigris/scarab/workflow/CheapWorkflow.java	2006-06-13 03:42:52-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.