[hibernate-issues] [Hibernate-JIRA] Resolved: (HV-438) Call to TraversableResolver.isReachable() threw an exception

Hardy Ferentschik (JIRA) noreply at atlassian.com
Mon Dec 12 08:05:21 EST 2011


     [ http://opensource.atlassian.com/projects/hibernate/browse/HV-438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hardy Ferentschik resolved HV-438.
----------------------------------

       Resolution: Duplicate
    Fix Version/s:     (was: 4.3.0.next)

> Call to TraversableResolver.isReachable() threw an exception
> ------------------------------------------------------------
>
>                 Key: HV-438
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HV-438
>             Project: Hibernate Validator
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 4.1.0.Final, 4.2.0.Beta1
>         Environment: hibernate 3.6.1.Final and hibernate validator 4.1.0.Final, GlassFish Server Open Source Edition 3.0.1, Spring 3.0.5 
>            Reporter: Denis Chapligin
>            Assignee: Hardy Ferentschik
>         Attachments: build.xml, hvbug.properties, validator-issue.zip
>
>
> I have a problem with custom class level constraint. When I try to validate a simple entity, like:
> {code}
> @Entity
> @Table(name="users")
> @Unique //My custom constraint
> public class User implements Serializable {
>     @Id
>     @GeneratedValue(strategy = GenerationType.IDENTITY)
>     @Column(name="id")
>     private Integer id;
> }
> {code}
> using a spring validation helper:
> {code}
> User u = new User();
> Errors result = new BindException(u, "User");
> validator.validate(u, result);
> {code}
> It throws a {{NullPointerException}}: 
> {noformat}
> Caused by: java.lang.NullPointerException
>         at java.lang.Class.searchFields(Class.java:2599)
>         at java.lang.Class.getDeclaredField(Class.java:1880)
>         at org.hibernate.ejb.util.PersistenceUtilHelper$MetadataCache.findMember(PersistenceUtilHelper.java:190)
>         at org.hibernate.ejb.util.PersistenceUtilHelper$MetadataCache.getMember(PersistenceUtilHelper.java:178)
>         at org.hibernate.ejb.util.PersistenceUtilHelper.get(PersistenceUtilHelper.java:91)
>         at org.hibernate.ejb.util.PersistenceUtilHelper.isLoadedWithReference(PersistenceUtilHelper.java:83)
>         at org.hibernate.ejb.HibernatePersistence$1.isLoadedWithReference(HibernatePersistence.java:93)
>         at javax.persistence.Persistence$PersistenceUtilImpl.isLoaded(Persistence.java:120)
>         at org.hibernate.validator.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:33)
>         at org.hibernate.validator.engine.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:112)
>         at org.hibernate.validator.engine.resolver.SingleThreadCachedTraversableResolver.isReachable(SingleThreadCachedTraversableResolver.java:47)
>         at org.hibernate.validator.engine.ValidatorImpl.isValidationRequired(ValidatorImpl.java:764)
> {noformat}
> Some investigation revealed, that in PersistenceUtil calls the 'property' parameter value is null and in the validator.engine functions 'name' var in value of the first and single entry of propertyPath.nodeList is null too.
> Most interested thing is that when i try validation code, shown above, in JUnit environment, it works well. 
> I've attached a simple webapp, that reproduces the issue. It is too big, to be uploaded here, so i put it to the dropbox: http://dl.dropbox.com/u/17691684/hvbug.tar.gz Initial report was on hibernate forums: https://forum.hibernate.org/viewtopic.php?f=9&t=1009612&start=0

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list