[hibernate-commits] Hibernate SVN: r17388 - in validator/trunk/hibernate-validator/src: test/java/org/hibernate/validation/constraints and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Aug 21 05:19:24 EDT 2009


Author: hardy.ferentschik
Date: 2009-08-21 05:19:23 -0400 (Fri, 21 Aug 2009)
New Revision: 17388

Modified:
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java
   validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/ConstraintValidatorContextTest.java
Log:
HV-208

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java	2009-08-21 08:45:30 UTC (rev 17387)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ConstraintValidatorContextImpl.java	2009-08-21 09:19:23 UTC (rev 17388)
@@ -29,12 +29,12 @@
 public class ConstraintValidatorContextImpl implements ConstraintValidatorContext {
 
 	private final List<ErrorMessage> errorMessages = new ArrayList<ErrorMessage>( 3 );
-	private final Path propertyPath;
+	private final PathImpl propertyPath;
 	private final ConstraintDescriptor<?> constraintDescriptor;
 	private boolean defaultDisabled;
 
 
-	public ConstraintValidatorContextImpl(Path propertyPath, ConstraintDescriptor<?> constraintDescriptor) {
+	public ConstraintValidatorContextImpl(PathImpl propertyPath, ConstraintDescriptor<?> constraintDescriptor) {
 		this.propertyPath = propertyPath;
 		this.constraintDescriptor = constraintDescriptor;
 	}
@@ -55,10 +55,6 @@
 		return constraintDescriptor;
 	}
 
-	public boolean isDefaultErrorDisabled() {
-		return defaultDisabled;
-	}
-
 	public List<ErrorMessage> getErrorMessages() {
 		List<ErrorMessage> returnedErrorMessages = new ArrayList<ErrorMessage>( errorMessages );
 		if ( !defaultDisabled ) {
@@ -89,16 +85,22 @@
 
 	class ErrorBuilderImpl implements ErrorBuilder {
 		String messageTemplate;
-		Path propertyPath;
+		PathImpl propertyPath;
 
-		ErrorBuilderImpl(String template, Path path) {
+		ErrorBuilderImpl(String template, PathImpl path) {
 			messageTemplate = template;
 			propertyPath = path;
 		}
 
 		public NodeBuilderDefinedContext addSubNode(String name) {
-			PathImpl path = PathImpl.createShallowCopy( propertyPath );
-			path.addNode( new NodeImpl( name ) );
+			PathImpl path;
+			if ( propertyPath.isRootPath() ) {
+				path = PathImpl.createNewPath( name );
+			}
+			else {
+				path = PathImpl.createShallowCopy( propertyPath );
+				path.addNode( new NodeImpl( name ) );
+			}
 			return new NodeBuilderImpl( messageTemplate, path );
 		}
 

Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/ConstraintValidatorContextTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/ConstraintValidatorContextTest.java	2009-08-21 08:45:30 UTC (rev 17387)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/constraints/ConstraintValidatorContextTest.java	2009-08-21 09:19:23 UTC (rev 17388)
@@ -36,7 +36,7 @@
 	 * HV-198
 	 */
 	@Test
-	public void testCorrectAnnotationTypeForWithReportAsSingleViolation() {
+	public void testCorrectSubNodePath() {
 		Validator validator = TestUtil.getValidator();
 
 		Item item = new Item();
@@ -48,4 +48,22 @@
 		assertNumberOfViolations( constraintViolations, 1 );
 		assertCorrectPropertyPaths( constraintViolations, "interval.start" );
 	}
+
+	/**
+	 * HV-208
+	 */
+	@Test
+	public void testCorrectPath() {
+		Validator validator = TestUtil.getValidator();
+
+		Item item = new Item();
+		Interval interval = new Interval();
+		item.interval = interval;
+		item.interval.start = 10;
+		item.interval.end = 5;
+
+		Set<ConstraintViolation<Interval>> constraintViolations = validator.validate( interval );
+		assertNumberOfViolations( constraintViolations, 1 );
+		assertCorrectPropertyPaths( constraintViolations, "start" );
+	}
 }



More information about the hibernate-commits mailing list