Hi Christian, Looks like we just crossposted.
FWIW, there is another report here: https://hibernate.atlassian.net/browse/HHH-12347 . We should check this case is covered too. I marked the 2 other issues as duplicate of https://hibernate.atlassian.net/browse/HHH-12332 , feel free to close them as Duplicate once you have checked they are covered by your fix. Thanks. On Mon, Mar 5, 2018 at 1:20 PM, Christian Beikov <[email protected] > wrote: > I have a reproducer as well and have a partial fix already. Just doing some > more testing now to make sure some other edge cases I discovered are > handled properly. > > Am 05.03.2018 13:08 schrieb "Petar Tahchiev" <[email protected]>: > > > 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 <[email protected]>: > > > >> 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 <[email protected]> > >> 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 < > [email protected] > >>> >: > >>> > >>> > 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.LocalContainerEntityManagerFac > toryBean. > >>> > 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.postC > >>> onstruct( > >>> > AbstractEntityPersister.java:3906) > >>> > > at > >>> > > org.hibernate.persister.entity.SingleTableEntityPersister.<init>( > >>> > SingleTableEntityPersister.java:437) > >>> > > at sun.reflect.GeneratedConstructorAccessor94 > .newInstance(Unkno > >>> wn > >>> > > 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 > >>> > [email protected] > >>> > 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 > >>> [email protected] > >>> 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 > [email protected] > https://lists.jboss.org/mailman/listinfo/hibernate-dev > _______________________________________________ hibernate-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/hibernate-dev
