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);