Error when using composite constraints (wrong messages and stack traces)
------------------------------------------------------------------------
Key: HV-182
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HV-182
Project: Hibernate Validator
Issue Type: Bug
Components: engine
Reporter: Hardy Ferentschik
Fix For: 4.0.0.Beta2
Attachments: bv_issue.zip
i'm using the current snapshot of hibernate validator v4.
constellation:
composite constraint + @ReportAsSingleViolation
on part of the composition is:
@Size(min = 1, max = 10)
the message of the composite constraint:
the following sometimes leads to a wrong text:
String message() default "my msg -- min: {min} max: {max}";
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
if i run the test-case multiple times (sometimes really really often) the following
stacktrace shows up:
java.lang.AssertionError: expected:<interface javax.validation.constraints.NotNull>
but was:<interface javax.validation.constraints.Size>
at org.junit.Assert.fail(Assert.java:58)
at org.junit.Assert.failNotEquals(Assert.java:259)
at org.junit.Assert.assertEquals(Assert.java:80)
at org.junit.Assert.assertEquals(Assert.java:88)
at test.CompositeConstraintTest.invalidNickName(CompositeConstraintTest.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at
org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at
org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:71)
at
org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at
org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at
org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at com.intellij.rt.junit4.Junit4ClassSuite.run(Junit4ClassSuite.java:99)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
the bad thing is - i cannot always reproduce it - i run some junit test-cases - sometimes
the interpolated message is ok and one test-run later (without source changes) it's
something like that:
my msg - min: my msg - min: {min} max: {max} max: my msg - min: {min} max: {max}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira