Scarab commit: svn commit: r11333 - branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java

[email protected] Wed, 28 Aug 2013 07:42:04 -0700 (PDT)
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: dabbous
Date: 2013-08-28 07:42:03-0700
New Revision: 11333

Modified:
   branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java

Log:
avoid npes in production environment

Modified: branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java
Url: http://scarab.tigris.org/source/browse/scarab/branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java?view=diff&pathrev=11333&r1=11332&r2=11333
==============================================================================
--- branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java	(original)
+++ branches/scarab_11079_legacy_with_ant_maven1/src/java/org/tigris/scarab/actions/ModifyIssue.java	2013-08-28 07:42:03-0700
@@ -159,7 +159,6 @@
     }
     
     
-    
     public void doSubmitattributes(RunData data, TemplateContext context)
         throws Exception
     {
@@ -204,13 +203,23 @@
         final LinkedMap modMap = issue.getModuleAttributeValuesMap();
         
         boolean localFieldErrors = false;
+        boolean all_groups_valid = true;
+        
         for (Iterator iter = modMap.mapIterator(); iter.hasNext(); ) 
         {
             final AttributeValue aval = (AttributeValue)modMap.get(iter.next());
             final Group group = intake.get("AttributeValue", aval.getQueryKey(), false);
+            String attribute_name = aval.getAttribute().getName();
             Field field = null;
-            if (group != null) 
+            if(group == null)
+            {
+                Log.get().info("doSubmitattributes: group " + attribute_name + ":" + aval.getValueId() + " not in intake.");            
+            }
+            else 
             {   
+                Log.get().info("doSubmitattributes: group " + attribute_name + ":" + aval.getValueId() + " isValid:" + group.isAllValid());
+                all_groups_valid &= group.isAllValid();
+                
                 if (aval instanceof OptionAttribute) 
                 {
                     // use optionId instead
@@ -267,6 +276,14 @@
                         }
                     }
                 }
+                else
+                {
+                    String cool = aval.getValue();
+                    if (cool != null)
+                    {
+                        int x = 0;
+                    }
+                }
                 
                 // check required attributes
                 for (int j=requiredAttributes.size()-1; j>=0; j--) 
@@ -306,8 +323,18 @@
         final boolean attributeValuesValid = submitattributesCheckRequiredAttributes(
                 issue, conditionallyRequiredFields, selectedOptions);
 
-        if (intake.isAllValid() && attributeValuesValid && !localFieldErrors) 
+        if (intake.isAllValid() != all_groups_valid)
         {
+            Log.get().info("doSubmitattributes: intake.isAllValid:" + intake.isAllValid() + " allGroups:" + all_groups_valid);
+        }
+        
+        Log.get().info("doSubmitattributes:" 
+                + " intake.isAllValid:" + intake.isAllValid() 
+                + " attributeValuesValid:" + attributeValuesValid 
+                + " localFieldErrors:" + localFieldErrors);
+        if (is_all_valid(intake) && attributeValuesValid && !localFieldErrors) 
+        {
+            
             submitattributesPerform(context, user, data, reasonSaveMode);
         } 
         else
@@ -320,6 +347,14 @@
         }
     }
 
+    private boolean is_all_valid(IntakeTool intake)
+    {
+        String groups = intake.declareGroups();
+        Log.get().info("doSubmitattributes: groups decalarion:");
+        Log.get().info(groups);
+        return intake.isAllValid();
+    }
+
     /**
      *  return 
      * @param data
@@ -567,6 +602,7 @@
             return;
         }
         final Attachment attachment = AttachmentManager.getInstance();
+        if(reasonGroup != null)
         reasonGroup.setProperties(attachment);
 
         try

------------------------------------------------------
http://scarab.tigris.org/ds/viewMessage.do?dsForumId=3577&dsMessageId=3063480