You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by dw...@apache.org on 2010/05/21 14:54:30 UTC

svn commit: r946990 - in /incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303: BeanDescriptorImpl.java DefaultMessageInterpolator.java Jsr303MetaBeanFactory.java

Author: dwoods
Date: Fri May 21 12:54:30 2010
New Revision: 946990

URL: http://svn.apache.org/viewvc?rev=946990&view=rev
Log:
BVAL-55 Fix remaining TCK tests.  Contributed by Carlos Vara.

Modified:
    incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
    incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/DefaultMessageInterpolator.java
    incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/Jsr303MetaBeanFactory.java

Modified: incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java
URL: http://svn.apache.org/viewvc/incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java?rev=946990&r1=946989&r2=946990&view=diff
==============================================================================
--- incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java (original)
+++ incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/BeanDescriptorImpl.java Fri May 21 12:54:30 2010
@@ -81,6 +81,10 @@ public class BeanDescriptorImpl extends 
         }
         MetaProperty prop = metaBean.getProperty(propertyName);
         if (prop == null) return null;
+        // If no constraints and not cascaded, return null
+        if ( prop.getValidations().length == 0 && prop.getFeature(Features.Property.REF_CASCADE) == null ) {
+            return null;
+        }
         return getPropertyDescriptor(prop);
     }
 

Modified: incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/DefaultMessageInterpolator.java
URL: http://svn.apache.org/viewvc/incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/DefaultMessageInterpolator.java?rev=946990&r1=946989&r2=946990&view=diff
==============================================================================
--- incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/DefaultMessageInterpolator.java (original)
+++ incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/DefaultMessageInterpolator.java Fri May 21 12:54:30 2010
@@ -135,6 +135,10 @@ public class DefaultMessageInterpolator 
         // resolve annotation attributes (step 4)
         resolvedMessage =
               replaceAnnotationAttributes(resolvedMessage, annotationParameters);
+        
+        // curly braces need to be scaped in the original msg, so unescape them now
+        resolvedMessage = resolvedMessage.replace( "\\{", "{" ).replace( "\\}", "}" ).replace( "\\\\", "\\" );
+        
         return resolvedMessage;
     }
 

Modified: incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/Jsr303MetaBeanFactory.java
URL: http://svn.apache.org/viewvc/incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/Jsr303MetaBeanFactory.java?rev=946990&r1=946989&r2=946990&view=diff
==============================================================================
--- incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/Jsr303MetaBeanFactory.java (original)
+++ incubator/bval/trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/Jsr303MetaBeanFactory.java Fri May 21 12:54:30 2010
@@ -390,7 +390,7 @@ public class Jsr303MetaBeanFactory imple
           throws IllegalAccessException, InvocationTargetException {
 
         final ConstraintValidator validator;
-        if (constraintClasses != null) {
+        if (constraintClasses != null && constraintClasses.length > 0) {
             Type type = determineTargetedType(owner, access);
             /**
              * spec says in chapter 3.5.3.:
@@ -448,13 +448,11 @@ public class Jsr303MetaBeanFactory imple
         
         // process composed constraints:
         // here are not other superclasses possible, because annotations do not inherit!
-        if (processAnnotations(prop, owner, annotation.annotationType(), access,
-              new AppendValidationToBuilder(builder)) || validator != null) {  // recursion!
-            appender.append(builder.getConstraintValidation());
-            return true;
-        } else {
-            return false;
-        }
+        processAnnotations(prop, owner, annotation.annotationType(), access, new AppendValidationToBuilder(builder));
+        
+        // Even if the validator is null, it must be added to mimic the RI impl
+        appender.append(builder.getConstraintValidation());
+        return true;
     }
 
     private void checkOneType(List<Type> types, Type targetType, Class<?> owner, Annotation anno,