[
http://opensource.atlassian.com/projects/hibernate/browse/ANN-511?page=co...
]
Rakesh Kalra commented on ANN-511:
----------------------------------
Here is an example which works with 3.2.0.ga, but fails with 3.2.1.ga:
<pre>
import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Valid;
public class HibernateValidatorTest {
public static void main(String[] args){
// ClassValidator construction fails with 3.2.1.ga.
ClassValidator<Form> formValidator = new
ClassValidator<Form>(Form.class);
System.out.println("Test Passed");
}
}
class Form{
private Member member;
@Valid
public Member getMember(){
return member;
}
}
class Member{
private Address address;
@Valid
public Address getAddress(){
return address;
}
}
class Address{
private String city;
@NotNull
public String getCity(){
return city;
}
}
</pre>
Here is the output:
<pre>
INFO: Hibernate Annotations 3.2.1.GA
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:142)
at org.hibernate.validator.ClassValidator.createChildValidator(ClassValidator.java:252)
at org.hibernate.validator.ClassValidator.initValidator(ClassValidator.java:216)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:149)
at org.hibernate.validator.ClassValidator.createChildValidator(ClassValidator.java:252)
at org.hibernate.validator.ClassValidator.initValidator(ClassValidator.java:216)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:134)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:105)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:97)
at HibernateValidatorTest.main(HibernateValidatorTest.java:9)
</pre>
IMHO, the fix is simply to initialize "reflectionManager" in the ClassValidator
constructor.
Regards,
Rakesh
Two level @Valid annotation doesn't work
-----------------------------------------
Key: ANN-511
URL:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-511
Project: Hibernate Annotations
Type: Bug
Components: validator
Versions: 3.2.1
Environment: hibernate-annotations 3.2.1.ga
Reporter: Rakesh Kalra
Original Estimate: 1 hour
Remaining: 1 hour
I have object depth of 3: Form, Member, Address. I get the following exception when
initializing ClassValidator:
java.lang.NullPointerException
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:142)
at
org.hibernate.validator.ClassValidator.createChildValidator(ClassValidator.java:252)
at org.hibernate.validator.ClassValidator.initValidator(ClassValidator.java:216)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:149)
at
org.hibernate.validator.ClassValidator.createChildValidator(ClassValidator.java:252)
at org.hibernate.validator.ClassValidator.initValidator(ClassValidator.java:216)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:134)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:105)
at org.hibernate.validator.ClassValidator.<init>(ClassValidator.java:97)
...
This works fine with 3.2.0.ga.
I think the problem is in the following constructor, where instance level
"reflectionManager" is not being initialized.
protected ClassValidator(
XClass beanXClass, ResourceBundle resourceBundle, MessageInterpolator
userInterpolator,
Map<XClass, ClassValidator> childClassValidators, ReflectionManager
reflectionManager
) {
this.beanClass = reflectionManager.toClass( beanXClass );
this.messageBundle = resourceBundle == null ?
getDefaultResourceBundle() :
resourceBundle;
this.defaultMessageBundle = ResourceBundle.getBundle( DEFAULT_VALIDATOR_MESSAGE );
this.userInterpolator = userInterpolator;
this.childClassValidators = childClassValidators;
initValidator( beanXClass, childClassValidators );
}
The other constructor initializes reflectionManager.
--
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