[hibernate-dev] Null-Pointer Exception with 5.2.14

Petar Tahchiev paranoiabla at gmail.com
Mon Mar 5 07:08:28 EST 2018


I managed to reproduce it. Here's the bug:
https://hibernate.atlassian.net/browse/HHH-12354 and here is the project to
reproduce it:
https://github.com/ptahchiev/hibernate-test-case-templates/tree/nlp

2018-03-01 10:49 GMT+02:00 Vlad Mihalcea <mihalcea.vlad at gmail.com>:

> Hi Petar,
>
> You can use this template:
>
> http://in.relation.to/2016/01/14/hibernate-jpa-test-case-template/
>
> to create a test case that replicates the issue. You don't need to provide
> all entities,
> just the 4 entities that build that hierarchy you have mentioned in your
> email.
>
> If you can replicate it, please open a Jira issue and attach the test case
> so that it's easier
> to investigate the cause and provide a fix.
>
> Thanks,
> Vlad
>
> On Thu, Mar 1, 2018 at 10:41 AM, Petar Tahchiev <paranoiabla at gmail.com>
> wrote:
>
>> Hi Christian,
>>
>> My model has more than 250 entities big. Here's the code that throws the
>> NLP:
>>
>> Class<?> c1 = clazz1.getMappedClass();
>> Class<?> c2 = commonPersistentClass.getMappedClass();
>> MappedSuperclass commonMappedSuperclass = null;
>>
>> // First we traverse up the clazz2/commonPersistentClass super types
>> until we find a common type
>> while ( !c2.isAssignableFrom( c1 ) ) {
>>    if ( commonPersistentClass == null) {
>>       if ( commonMappedSuperclass.getSuperPersistentClass() == null )
>> {    // <------------------------ NLPEX happens here!!!!!!
>>          commonMappedSuperclass =
>> commonMappedSuperclass.getSuperMappedSuperclass();
>>          commonPersistentClass = null;
>>       }
>>       else {
>>          commonPersistentClass =
>> commonMappedSuperclass.getSuperPersistentClass();
>>          commonMappedSuperclass = null;
>>       }
>>    }
>>    else {
>>       if ( commonPersistentClass.getSuperclass() == null ) {
>>          commonMappedSuperclass =
>> commonPersistentClass.getSuperMappedSuperclass();
>>          commonPersistentClass = null;
>>       }
>>       else {
>>          commonPersistentClass = commonPersistentClass.getSuperclass();
>>          commonMappedSuperclass = null;
>>       }
>>    }
>> }
>>
>> As you can see the commonMappedSuperclass is not initialized and stays
>> null!
>> At this moment c1 is CustomerEntity and c2 is UserGroupEntity. The
>> hierarchy looks like this:
>>
>>          Principal
>>        /              \
>>     Usergroup    User
>>                         |
>>                        Customer
>>
>> HTH
>>
>>
>>
>> 2018-02-28 21:52 GMT+02:00 Christian Beikov <christian.beikov at gmail.com>:
>>
>> > Hey, I saw the comment on the issue. Thanks for reporting. Could you
>> > maybe post the model that causes this? I'd need to create a reproducer
>> > to be able to analyze this further.
>> >
>> >
>> > Mit freundlichen Grüßen,
>> > ------------------------------------------------------------
>> ------------
>> > *Christian Beikov*
>> > Am 28.02.2018 um 20:11 schrieb Petar Tahchiev:
>> > > Hi guys,
>> > > I have this exception with latest 5.2.14 (my project runs fine with
>> > 5.2.13):
>> > >
>> > > Caused by: javax.persistence.PersistenceException: [PersistenceUnit:
>> > > default] Unable to build Hibernate SessionFactory
>> > >      at
>> > > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImp
>> > l.persistenceException(EntityManagerFactoryBuilderImpl.java:970)
>> > >      at
>> > > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderI
>> mpl.build(
>> > EntityManagerFactoryBuilderImpl.java:895)
>> > >      at
>> > > org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceP
>> > rovider.createContainerEntityManagerFactory(SpringHibernateJ
>> paPersistenceP
>> > rovider.java:57)
>> > >      at
>> > > org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.
>> > createNativeEntityManagerFactory(LocalContainerEntityManagerFac
>> > toryBean.java:365)
>> > >      at
>> > > org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.
>> > buildNativeEntityManagerFactory(AbstractEntityManagerFactory
>> Bean.java:387)
>> > >      at
>> > > org.springframework.orm.jpa.AbstractEntityManagerFactoryBe
>> > an.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:376)
>> > >      at
>> > > org.springframework.orm.jpa.LocalContainerEntityManagerFac
>> > toryBean.afterPropertiesSet(LocalContainerEntityManagerFac
>> > toryBean.java:341)
>> > >      at
>> > > org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFac
>> > tory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1769)
>> > >      at
>> > > org.springframework.beans.factory.support.AbstractAutowireCa
>> pableBeanFac
>> > tory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706)
>> > >      ... 32 more
>> > > Caused by: org.hibernate.MappingException: Could not instantiate
>> > persister
>> > > org.hibernate.persister.entity.SingleTableEntityPersister
>> > >      at
>> > > org.hibernate.persister.internal.PersisterFactoryImpl.
>> > createEntityPersister(PersisterFactoryImpl.java:112)
>> > >      at
>> > > org.hibernate.persister.internal.PersisterFactoryImpl.
>> > createEntityPersister(PersisterFactoryImpl.java:77)
>> > >      at
>> > > org.hibernate.metamodel.internal.MetamodelImpl.
>> > initialize(MetamodelImpl.java:128)
>> > >      at
>> > > org.hibernate.internal.SessionFactoryImpl.<init>(
>> > SessionFactoryImpl.java:300)
>> > >      at
>> > > org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(
>> > SessionFactoryBuilderImpl.java:460)
>> > >      at
>> > > org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderI
>> mpl.build(
>> > EntityManagerFactoryBuilderImpl.java:892)
>> > >      ... 39 more
>> > > Caused by: java.lang.NullPointerException
>> > >      at
>> > > org.hibernate.persister.entity.AbstractPropertyMapping.
>> > getSuperCollection(AbstractPropertyMapping.java:285)
>> > >      at
>> > > org.hibernate.persister.entity.AbstractPropertyMapping.addPr
>> opertyPath(
>> > AbstractPropertyMapping.java:198)
>> > >      at
>> > > org.hibernate.persister.entity.AbstractPropertyMapping.
>> > initPropertyPaths(AbstractPropertyMapping.java:395)
>> > >      at
>> > > org.hibernate.persister.entity.AbstractEntityPersister.
>> > initOrdinaryPropertyPaths(AbstractEntityPersister.java:2300)
>> > >      at
>> > > org.hibernate.persister.entity.AbstractEntityPersister.
>> > initPropertyPaths(AbstractEntityPersister.java:2347)
>> > >      at
>> > > org.hibernate.persister.entity.AbstractEntityPersister.postConstruct(
>> > AbstractEntityPersister.java:3906)
>> > >      at
>> > > org.hibernate.persister.entity.SingleTableEntityPersister.<init>(
>> > SingleTableEntityPersister.java:437)
>> > >      at sun.reflect.GeneratedConstructorAccessor94.newInstance(
>> Unknown
>> > > Source)
>> > >      at
>> > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
>> > DelegatingConstructorAccessorImpl.java:45)
>> > >      at java.lang.reflect.Constructor.newInstance(Constructor.java:4
>> 23)
>> > >      at
>> > > org.hibernate.persister.internal.PersisterFactoryImpl.
>> > createEntityPersister(PersisterFactoryImpl.java:96)
>> > >      ... 44 more
>> > >
>> > >
>> > >
>> > >
>> > >
>> >
>> > _______________________________________________
>> > hibernate-dev mailing list
>> > hibernate-dev at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>>
>>
>>
>> --
>> Regards, Petar!
>> Karlovo, Bulgaria.
>> ---
>> Public PGP Key at:
>> http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x19658550C3110611
>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> _______________________________________________
>> hibernate-dev mailing list
>> hibernate-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>>
>
>


-- 
Regards, Petar!
Karlovo, Bulgaria.
---
Public PGP Key at:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x19658550C3110611
Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611


More information about the hibernate-dev mailing list