[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