escaping - How to escape curly braces in hibernate validator messages (test case provided) -


i want put {this} message value hibernate validator validation message.

so escaped value of given message in properties file :\{this\}

however hibrnate validator tries check if there message given key. think bug maybe doing wrong? (tested hibernate-validator 4.3.1 , 5.0.1 - same result - stack overflow

test case:

(for simplification not have properties file, return value java class. in reality handlegetobject read value custom-provided properties):

import org.hibernate.validator.hibernatevalidator; import org.hibernate.validator.hibernatevalidatorconfiguration; import org.hibernate.validator.internal.engine.constraintvalidation.constraintvalidatorfactoryimpl; import org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator; import org.hibernate.validator.spi.resourceloading.resourcebundlelocator; import org.junit.test;  import javax.validation.*; import javax.validation.constraints.max; import java.util.enumeration; import java.util.locale; import java.util.resourcebundle; import java.util.set;   public class hibvaltest {  @test public void shouldnotsubstituteescaped() throws exception {      messageinterpolator interpolator = new resourcebundlemessageinterpolator( new resourcebundlelocator() {          @override         public resourcebundle getresourcebundle(locale locale) {             return new resourcebundle() {                  @override                 protected object handlegetobject(string key) {                     return "\\{escapedkey\\}";                 }                  @override                 public enumeration<string> getkeys() {                     throw new unsupportedoperationexception();                 }             };         }     }, false);      hibernatevalidatorconfiguration config = validation.byprovider( hibernatevalidator.class ).configure();     config = config.messageinterpolator(interpolator).constraintvalidatorfactory(new constraintvalidatorfactoryimpl());      validatorfactory factory = config.buildvalidatorfactory();     validator validator = factory.getvalidator();      set<constraintviolation<a>> validate = validator.validate(new a()); }  private class {     @max(value=1, message = "{key}")     private int a=2; } } 

result:

at org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.resolveparameter(resourcebundlemessageinterpolator.java:244) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.interpolatebundlemessage(resourcebundlemessageinterpolator.java:211) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.resolveparameter(resourcebundlemessageinterpolator.java:244) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.interpolatebundlemessage(resourcebundlemessageinterpolator.java:211) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.resolveparameter(resourcebundlemessageinterpolator.java:244) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.interpolatebundlemessage(resourcebundlemessageinterpolator.java:211) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.resolveparameter(resourcebundlemessageinterpolator.java:244) @ org.hibernate.validator.messageinterpolation.resourcebundlemessageinterpolator.interpolatebundlemessage(resourcebundlemessageinterpolator.java:211) 

this looks bug indeed. create ticket in our issue tracker, please?

for time being, work around not providing value escaped key (if that's possible in case), e.g. so:

protected object handlegetobject(string key) {     return key.equals("key") ? "\\{escapedkey\\}" : null; } 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -