Upgrading from java8 to java17 getting javassist enhancement failed error

644 Views Asked by At

After updating the java version from 8 to 17 i started seeing this error in my logs. My gradle dependency:

    implementation(group: 'org.hibernate', name: 'hibernate-core', version: '3.6.10.Final')
    implementation(group: 'org.hibernate', name: 'hibernate-c3p0', version: '3.6.10.Final')
    runtimeOnly(group: 'org.javassist', name: 'javassist', version: '3.17.1-GA')

Below is the error logs

 INFO  main db.HibernateUtils  [] Building hibernate session factory...
    ERROR main pojo.BasicLazyInitializer  [] Javassist Enhancement failed: com.class.someclass
    ERROR main pojo.BasicLazyInitializer  [] java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @3e07d849
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.SecurityActions.setAccessible(SecurityActions.java:102)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:180)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)
    ERROR main pojo.BasicLazyInitializer  []   at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    ERROR main pojo.BasicLazyInitializer  []   at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)
    ERROR main pojo.BasicLazyInitializer  []   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
    ERROR main pojo.BasicLazyInitializer  []   db.HibernateUtils.createSessionFactory(HibernateUtils.java:37)
    ERROR main pojo.BasicLazyInitializer  []   db.HibernateUtils.createSessionFactory(HibernateUtils.java:30)
    ERROR main pojo.BasicLazyInitializer  []   Loader.start(Loader.java:124)
    ERROR main pojo.BasicLazyInitializer  []   Bootstrap.main(Bootstrap.java:37)
    WARN  main entity.PojoEntityTuplizer  [] could not create proxy factory for:com.class.someclass
    WARN  main entity.PojoEntityTuplizer  [] org.hibernate.HibernateException: Javassist Enhancement failed: com.class.someclass
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:169)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.postInstantiate(JavassistProxyFactory.java:65)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:185)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:167)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:105)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:133)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:322)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:485)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:286)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
    WARN  main entity.PojoEntityTuplizer  []   db.HibernateUtils.createSessionFactory(HibernateUtils.java:37)
    WARN  main entity.PojoEntityTuplizer  []   db.HibernateUtils.createSessionFactory(HibernateUtils.java:30)
    WARN  main entity.PojoEntityTuplizer  []   Loader.start(Loader.java:124)
    WARN  main entity.PojoEntityTuplizer  []   Bootstrap.main(Bootstrap.java:37)
    WARN  main entity.PojoEntityTuplizer  [] Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @3e07d849
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
    WARN  main entity.PojoEntityTuplizer  []   at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.SecurityActions.setAccessible(SecurityActions.java:102)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:180)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422)
    WARN  main entity.PojoEntityTuplizer  []   at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394)
    WARN  main entity.PojoEntityTuplizer  []   at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxyFactory(JavassistLazyInitializer.java:162)
    WARN  main entity.PojoEntityTuplizer  []   ... 22 more

I have tried adding jvmargs in my gradle file

test {
    jvmArgs=[
             '--add-opens=java.base/java.lang.module=ALL-UNNAMED'
            ]
}

but still geting the same error logs. Do I have update hibernate or javassist ependency? then I guess code changes will also required. Can someone please suggest what needs to be done here?

0

There are 0 best solutions below