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

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jun 29 10:53:45 EDT 2009


Author: hardy.ferentschik
Date: 2009-06-29 10:53:45 -0400 (Mon, 29 Jun 2009)
New Revision: 16965

Modified:
   validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java
   validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolatorTest.java
Log:
made sure that message literales get properly escaped

Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java	2009-06-29 14:49:25 UTC (rev 16964)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java	2009-06-29 14:53:45 UTC (rev 16965)
@@ -140,6 +140,11 @@
 
 		// resolve annotation attributes (step 4)
 		resolvedMessage = replaceAnnotationAttributes( resolvedMessage, annotationParameters );
+
+		// last but not least we have to take care of escaped literals
+		resolvedMessage = resolvedMessage.replace( "\\{", "{" );
+		resolvedMessage = resolvedMessage.replace( "\\}", "}" );
+		resolvedMessage = resolvedMessage.replace( "\\\\", "\\" );
 		return resolvedMessage;
 	}
 

Modified: validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolatorTest.java
===================================================================
--- validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolatorTest.java	2009-06-29 14:49:25 UTC (rev 16964)
+++ validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolatorTest.java	2009-06-29 14:53:45 UTC (rev 16965)
@@ -33,10 +33,10 @@
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
+import org.hibernate.validation.metadata.ConstraintDescriptorImpl;
+import org.hibernate.validation.metadata.ConstraintHelper;
 import org.hibernate.validation.util.annotationfactory.AnnotationDescriptor;
 import org.hibernate.validation.util.annotationfactory.AnnotationFactory;
-import org.hibernate.validation.metadata.ConstraintDescriptorImpl;
-import org.hibernate.validation.metadata.ConstraintHelper;
 
 /**
  * Tests for message resolution.
@@ -89,6 +89,25 @@
 	}
 
 	@Test
+	public void testMessageLiterals() {
+
+		interpolator = new ResourceBundleMessageInterpolator( new TestResourceBundle() );
+		MessageInterpolator.Context context = new MessageInterpolatorContext( notNullDescriptor, null );
+
+		String expected = "{";
+		String actual = interpolator.interpolate( "\\{", context );
+		assertEquals( actual, expected, "Wrong substitution" );
+
+		expected = "}";
+		actual = interpolator.interpolate( "\\}", context );
+		assertEquals( actual, expected, "Wrong substitution" );
+
+		expected = "\\";
+		actual = interpolator.interpolate( "\\", context );
+		assertEquals( actual, expected, "Wrong substitution" );
+	}
+
+	@Test
 	public void testUnSuccessfulInterpolation() {
 		interpolator = new ResourceBundleMessageInterpolator( new TestResourceBundle() );
 		MessageInterpolator.Context context = new MessageInterpolatorContext( notNullDescriptor, null );




More information about the hibernate-commits mailing list