You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2010/01/22 00:24:09 UTC

svn commit: r901921 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf: ComponentTagHandlerDelegate.java ValidatorTagHandlerDelegate.java

Author: jakobk
Date: Thu Jan 21 23:24:09 2010
New Revision: 901921

URL: http://svn.apache.org/viewvc?rev=901921&view=rev
Log:
MYFACES-2501 f:validateBean should only use the validationGroups from the stack, if its validationGroups property is null or an empty string

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ComponentTagHandlerDelegate.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ValidatorTagHandlerDelegate.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ComponentTagHandlerDelegate.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ComponentTagHandlerDelegate.java?rev=901921&r1=901920&r2=901921&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ComponentTagHandlerDelegate.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ComponentTagHandlerDelegate.java Thu Jan 21 23:24:09 2010
@@ -19,7 +19,6 @@
 package org.apache.myfaces.view.facelets.tag.jsf;
 
 import java.io.IOException;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -491,42 +490,25 @@
                     {
                         BeanValidator beanValidator = (BeanValidator) validator;
                         
-                        // add validation groups from stack
-                        Iterator<String> itValidationGroups = actx.getValidationGroups();
-                        if (itValidationGroups != null && itValidationGroups.hasNext())
+                        // check the validationGroups
+                        String validationGroups =  beanValidator.getValidationGroups();
+                        if (validationGroups == null 
+                                || validationGroups.matches(BeanValidator.EMPTY_VALIDATION_GROUPS_PATTERN))
                         {
-                            // we use a Set to eliminate duplicates
-                            Set<String> groupsSet = new HashSet<String>();
-                            
-                            // add any existing validationGroups to Set first
-                            String validationGroups =  beanValidator.getValidationGroups();
-                            if (validationGroups != null)
+                            // no validationGroups available
+                            // --> get the validationGroups from the stack
+                            Iterator<String> itValidationGroups = actx.getValidationGroups();
+                            if (itValidationGroups != null && itValidationGroups.hasNext())
                             {
-                                addValidationGroups(validationGroups, groupsSet);
-                            }
-                            while (itValidationGroups.hasNext())
-                            {
-                                // note that the validationGroups from the stack are non-null
                                 validationGroups = itValidationGroups.next();
-                                addValidationGroups(validationGroups, groupsSet);
                             }
-                            
-                            // join validationGroups and add them to beanValidator
-                            StringBuilder sb = new StringBuilder();
-                            boolean first = true;
-                            for (String group : groupsSet)
+                            else
                             {
-                                if (first)
-                                {
-                                    first = false;
-                                }
-                                else
-                                {
-                                    sb.append(BeanValidator.VALIDATION_GROUPS_DELIMITER);
-                                }
-                                sb.append(group);
+                                // no validationGroups on the stack
+                                // --> set the default validationGroup
+                                validationGroups = javax.validation.groups.Default.class.getName();
                             }
-                            beanValidator.setValidationGroups(sb.toString());
+                            beanValidator.setValidationGroups(validationGroups);
                         }
                     }
                     
@@ -604,21 +586,6 @@
     }
     
     /**
-     * Splits the validationGroups String with BeanValidator.VALIDATION_GROUPS_DELIMITER
-     * and then trims and adds every String in the resulting array to the Set. 
-     * @param validationGroups
-     * @param set
-     */
-    private void addValidationGroups(String validationGroups, Set<String> set)
-    {
-        String[] sa = validationGroups.split(BeanValidator.VALIDATION_GROUPS_DELIMITER);
-        for (String group : sa)
-        {
-            set.add(group.trim());
-        }
-    }
-    
-    /**
      * Create a new UIPanel for the use as a dynamically 
      * created container for multiple children in a facet.
      * Duplicate in javax.faces.webapp.UIComponentClassicTagBase.

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ValidatorTagHandlerDelegate.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ValidatorTagHandlerDelegate.java?rev=901921&r1=901920&r2=901921&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ValidatorTagHandlerDelegate.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/tag/jsf/ValidatorTagHandlerDelegate.java Thu Jan 21 23:24:09 2010
@@ -26,6 +26,7 @@
 import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
+import javax.faces.validator.BeanValidator;
 import javax.faces.validator.Validator;
 import javax.faces.view.EditableValueHolderAttachedObjectHandler;
 import javax.faces.view.facelets.ComponentHandler;
@@ -128,7 +129,8 @@
                 // the validator is enabled --> add the validation groups to the stack
                 String groups = getValidationGroups(ctx);
                 // spec: don't save the validation groups string if it is null or empty string
-                if (groups != null && !"".equals(groups))
+                if (groups != null 
+                        && !groups.matches(BeanValidator.EMPTY_VALIDATION_GROUPS_PATTERN))
                 {
                     abstractCtx.pushValidationGroupsToStack(groups);
                     _delegate.getValidatorConfig().getNextHandler().apply(ctx, parent);