You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am trying evaluate the hypersistence-optimizer in our spring boot hibernate application.
After following installation guide and userguide and also succesfully testing out hypersistence-optimizer-public-parent I am running into a dead end with the following error:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/beontra/services/budgetforecast/common/config/TestHibernateConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalAccessError: class io.hypersistence.optimizer.hibernate.decorator.AbstractHibernate56SessionFactoryDecorator tried to access field org.hibernate.internal.FastSessionServices.eventListenerGroup_LOCK (io.hypersistence.optimizer.hibernate.decorator.AbstractHibernate56SessionFactoryDecorator and org.hibernate.internal.FastSessionServices are in unnamed module of loader 'app')
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at app//org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)
at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908)
at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:338)
at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123)
at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
... 85 more
Caused by: java.lang.IllegalAccessError: class io.hypersistence.optimizer.hibernate.decorator.AbstractHibernate56SessionFactoryDecorator tried to access field org.hibernate.internal.FastSessionServices.eventListenerGroup_LOCK (io.hypersistence.optimizer.hibernate.decorator.AbstractHibernate56SessionFactoryDecorator and org.hibernate.internal.FastSessionServices are in unnamed module of loader 'app')
`
Hibernate Config File:
@Configuration
@Profile("test")
public class TestHibernateConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource) {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
setHibernateLogLevel();
em.setDataSource(dataSource);
em.setPackagesToScan(
<packages>
);
em.setJpaPropertyMap(hibernateProperties());
em.setPersistenceProviderClass(HibernatePersistenceProvider.class);
em.setJpaVendorAdapter(this.jpaVendorAdapter());
return em;
}
private Map<String, Object> hibernateProperties() {
Map<String, Object> hibernateProperties = new HashMap<>();
hibernateProperties.put("hibernate.dialect", "com.beontra.services.budgetforecast.common.config.CustomDialect");
hibernateProperties.put("hibernate.hbm2ddl.auto", "update");
hibernateProperties.put("hibernate.show_sql", "true");
return hibernateProperties;
}
}
Hypersistence Configuration:
@Configuration
@Profile("test")
public class HypersistenceConfiguration {
@Bean
public HypersistenceOptimizer hypersistenceOptimizer(
EntityManagerFactory entityManagerFactory) {
return new HypersistenceOptimizer(
new JpaConfig(entityManagerFactory)
);
}
}
Tried multiple variation (gradle test config or VM Options)
--add-opens io.hypersistence.optimizer=org.hibernate.internal
--add-open =org.hibernate.internal
@beoRich Try to replicate it on the trial branch of this repository. It has many modules, including a Spring Boot one. If you can replicate it in this repository, then I will be able to investigate it and help you find the solution to this issue.
I am trying evaluate the hypersistence-optimizer in our spring boot hibernate application.
After following installation guide and userguide and also succesfully testing out hypersistence-optimizer-public-parent I am running into a dead end with the following error:
Hibernate Config File:
Hypersistence Configuration:
Gradle dependencies:
+--- org.springframework.boot:spring-boot-starter-web -> 2.5.2 ()
+--- org.springframework.boot:spring-boot-starter-data-jpa:2.6.4
| +--- org.springframework.boot:spring-boot-starter-aop:2.6.4 -> 2.5.2
| | +--- org.springframework.boot:spring-boot-starter:2.5.2 ()
| +--- org.springframework.boot:spring-boot-starter-jdbc:2.6.4 -> 2.5.2
| | +--- org.springframework.boot:spring-boot-starter:2.5.2 ()
| | +--- com.zaxxer:HikariCP:4.0.3
| | | --- org.slf4j:slf4j-api:1.7.30 -> 1.7.31
| | --- org.springframework:spring-jdbc:5.3.8
| | +--- org.springframework:spring-beans:5.3.8 ()
| | +--- org.springframework:spring-core:5.3.8 ()
| | --- org.springframework:spring-tx:5.3.8 ()
| +--- jakarta.transaction:jakarta.transaction-api:1.3.3
| +--- jakarta.persistence:jakarta.persistence-api:2.2.3
| +--- org.hibernate:hibernate-core:5.6.5.Final -> 5.4.32.Final
| | +--- org.jboss.logging:jboss-logging:3.4.1.Final -> 3.4.2.Final
and
Also tried a different configuration aproach via HibernateTransactionManagerBootstrapExecutorConfiguration and run into the same issue.
Any help or hints would be appreciated!
The text was updated successfully, but these errors were encountered: