[hibernate-commits] Hibernate SVN: r16857 - validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Jun 22 10:22:20 EDT 2009
Author: hardy.ferentschik
Date: 2009-06-22 10:22:20 -0400 (Mon, 22 Jun 2009)
New Revision: 16857
Modified:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java
Log:
HV-174 Made sure that replacement string are 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-22 14:21:28 UTC (rev 16856)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ResourceBundleMessageInterpolator.java 2009-06-22 14:22:20 UTC (rev 16857)
@@ -199,7 +199,7 @@
parameter, bundle, locale, recurse
);
- matcher.appendReplacement( sb, resolvedParameterValue );
+ matcher.appendReplacement( sb, escapeMetaCharacters( resolvedParameterValue ) );
}
matcher.appendTail( sb );
return sb.toString();
@@ -213,7 +213,7 @@
String parameter = matcher.group( 1 );
Object variable = annotationParameters.get( removeCurlyBrace( parameter ) );
if ( variable != null ) {
- resolvedParameterValue = variable.toString();
+ resolvedParameterValue = escapeMetaCharacters( variable.toString() );
}
else {
resolvedParameterValue = message;
@@ -269,4 +269,15 @@
}
return bundle;
}
+
+ /**
+ * @param s The string in which to replace the meta characters '$' and '\'.
+ *
+ * @return A string where meta characters relevant for {@link Matcher#appendReplacement} are escaped.
+ */
+ private String escapeMetaCharacters(String s) {
+ String escapedString = s.replace( "\\", "\\\\" );
+ escapedString = escapedString.replace( "$", "\\$" );
+ return escapedString;
+ }
}
More information about the hibernate-commits
mailing list