Susheela Gowda
Susheela Gowda

Reputation: 31

Application fails to start after Upgrading to spring boot2.6 with HazelCast BeanInstantiationException

After upgrading the spring boot version from 2.1.x to 2.6.2, application fails to start with the below error. Configclass, pom.xml, application.properties and stack traces are attached. This was working with the older version of spring boot Any help is much appreciated. HazelcastConfig class

application.properties :

hazelcast_encryption_enabled=true hazelcast_server_bind_group=TestHazelcast

Pom.xml

    <spring.boot.version>2.6.2</spring.boot.version>
   <hibernate.version>5.6.0.Final</hibernate.version>
 <dependency>
            <groupId>com.hazelcast</groupId>
            <artifactId>hazelcast</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>net.sourceforge.findbugs</groupId>
                    <artifactId>annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.eclipsesource.minimal-json</groupId>
                    <artifactId>minimal-json</artifactId>
                </exclusion>

            </exclusions>
        </dependency> 

Stack Trace :

2022-03-18 16:53:17.999  WARN 17872 --- [           main] c.h.i.i.HazelcastInstanceFactory         : Hazelcast is starting in a Java modular environment (Java 9 and newer) but without proper access to required Java packages. Use additional Java arguments to provide Hazelcast access to Java internal API. The internal API access is used to get the best performance results. Arguments to be used:
 --add-modules java.se --add-exports java.base/jdk.internal.ref=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.management/sun.management=ALL-UNNAMED --add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
2022-03-18 16:53:19.478  INFO 17872 --- [           main] c.h.system                               : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Hazelcast 4.2.4 (20211220 - 25f0049) starting at [10.206.138.105]:5701
2022-03-18 16:53:21.153  INFO 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Using Discovery SPI
2022-03-18 16:53:21.175  WARN 17872 --- [           main] c.h.c.CPSubsystem                        : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] CP Subsystem is not enabled. CP data structures will operate in UNSAFE mode! Please note that UNSAFE mode will not provide strong consistency guarantees.
2022-03-18 16:53:22.061  INFO 17872 --- [           main] c.h.i.d.Diagnostics                      : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Diagnostics disabled. To enable add -Dhazelcast.diagnostics.enabled=true to the JVM arguments.
2022-03-18 16:53:22.101  INFO 17872 --- [           main] c.h.c.LifecycleService                   : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] [10.206.138.105]:5701 is STARTING
2022-03-18 16:53:22.843 ERROR 17872 --- [           main] c.h.i.c.i.DiscoveryJoiner                : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] no transaction is in progress

javax.persistence.TransactionRequiredException: no transaction is in progress
        at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:431) ~[hibernate-core-5.6.0.Final.jar:5.6.0.Final]
        at org.hibernate.internal.SessionImpl.checkTransactionNeededForUpdateOperation(SessionImpl.java:3478) ~[hibernate-core-5.6.0.Final.jar:5.6.0.Final]
        at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1394) ~[hibernate-core-5.6.0.Final.jar:5.6.0.Final]
        at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1389) ~[hibernate-core-5.6.0.Final.jar:5.6.0.Final]
        at org.springframework.orm.hibernate5.SessionFactoryUtils.flush(SessionFactoryUtils.java:113) ~[spring-orm-5.3.14.jar:5.3.14]
        at org.springframework.orm.hibernate5.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:95) ~[spring-orm-5.3.14.jar:5.3.14]
        at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:97) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:916) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:727) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:654) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:407) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.14.jar:5.3.14]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.14.jar:5.3.14]
        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753) ~[spring-aop-5.3.14.jar:5.3.14]
        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698) ~[spring-aop-5.3.14.jar:5.3.14]
        at com.distributed.cache.db.HazelCastPingDao$$EnhancerBySpringCGLIB$$6ec90982.getMembers(<generated>) ~[classes/:?]
        at com.distributed.cache.hazelcast.HazelcastDatabaseDiscoveryStrategy.discoverNodes(HazelcastDatabaseDiscoveryStrategy.java:36) ~[classes/:?]
        at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverNodes(DefaultDiscoveryService.java:72) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddresses(DiscoveryJoiner.java:71) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddressesForInitialJoin(DiscoveryJoiner.java:60) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.internal.cluster.impl.TcpIpJoiner.joinViaPossibleMembers(TcpIpJoiner.java:136) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.internal.cluster.impl.TcpIpJoiner.doJoin(TcpIpJoiner.java:96) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.internal.cluster.impl.AbstractJoiner.join(AbstractJoiner.java:137) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.Node.join(Node.java:810) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.Node.start(Node.java:473) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.HazelcastInstanceImpl.<init>(HazelcastInstanceImpl.java:123) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:211) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:190) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.instance.impl.HazelcastInstanceFactory.newHazelcastInstance(HazelcastInstanceFactory.java:128) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:57) ~[hazelcast-4.2.4.jar:4.2.4]
        at com.distributed.cache.hazelcast.HazelCastSpringConfig.hazelCastInstance(HazelCastSpringConfig.java:80) ~[classes/:?]
        at com.distributed.cache.hazelcast.HazelCastSpringConfig$$EnhancerBySpringCGLIB$$2534caa4.CGLIB$hazelCastInstance$5(<generated>) ~[classes/:?]
        at com.distributed.cache.hazelcast.HazelCastSpringConfig$$EnhancerBySpringCGLIB$$2534caa4$$FastClassBySpringCGLIB$$be69fb27.invoke(<generated>) ~[classes/:?]
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.3.14.jar:5.3.14]
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.3.14.jar:5.3.14]
        at com.distributed.cache.hazelcast.HazelCastSpringConfig$$EnhancerBySpringCGLIB$$2534caa4.hazelCastInstance(<generated>) ~[classes/:?]
        

2022-03-18 16:53:22.907 ERROR 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Could not join cluster. Shutting down now!
2022-03-18 16:53:22.911  INFO 17872 --- [           main] c.h.c.LifecycleService                   : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] [10.206.138.105]:5701 is SHUTTING_DOWN
2022-03-18 16:53:22.922  WARN 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Terminating forcefully...
2022-03-18 16:53:22.923  INFO 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Shutting down connection manager...
2022-03-18 16:53:22.974  INFO 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Shutting down node engine...
2022-03-18 16:53:23.011  INFO 17872 --- [           main] c.h.i.i.NodeExtension                    : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Destroying node NodeExtension.
2022-03-18 16:53:23.014  INFO 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Hazelcast Shutdown is completed in 91 ms.
2022-03-18 16:53:23.014  INFO 17872 --- [           main] c.h.c.LifecycleService                   : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] [10.206.138.105]:5701 is SHUTDOWN
2022-03-18 16:53:23.153  WARN 17872 --- [           main] c.h.i.u.p.PhoneHome                      : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Could not schedule phone home task! Most probably Hazelcast failed to start.
2022-03-18 16:53:23.154  INFO 17872 --- [           main] c.h.i.i.Node                             : [10.206.138.105]:5701 [TestHazelcast] [4.2.4] Node is already shutting down... Waiting for shutdown process to complete...
2022-03-18 16:53:23.177  WARN 17872 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distributedCacheAdapterProxy': Unsatisfied dependency expressed through field 'distributedAdapter'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'distributedCacheImpl': Unsatisfied dependency expressed through field 'hazelCastInstance'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hazelCastInstance' defined in class path resource [com/distributed/cache/hazelcast/HazelCastSpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.hazelcast.core.HazelcastInstance]: Factory method 'hazelCastInstance' threw exception; nested exception is java.lang.IllegalStateException: Node failed to start!
2022-03-18 16:53:23.178  WARN 17872 --- [           main] .s.c.a.CommonAnnotationBeanPostProcessor : Destroy method on bean with name 'hazelCastSpringConfig' threw an exception: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'getHazelcastPingDao': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
2022-03-18 16:53:23.187  INFO 17872 --- [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
 --- [           main] .SchemaDropperImpl$DelayedDropActionImpl : HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'
2022-03-18 16:53:23.262  INFO 17872 --- [           main] c.z.h.HikariDataSource                   : HikariPool-1 - Shutdown initiated...
2022-03-18 16:53:23.351  INFO 17872 --- [           main] c.z.h.HikariDataSource                   : HikariPool-1 - Shutdown completed.
2022-03-18 16:53:23.531  INFO 17872 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-03-18 16:53:23.718 ERROR 17872 --- [           main] o.s.b.SpringApplication                  : Application run failed

Upvotes: 2

Views: 2089

Answers (1)

Neil Stevenson
Neil Stevenson

Reputation: 3150

Is this a duplicate of this ?

Generic advice would be to use newer versions than Spring Boot 2.6.2 and Hazelcast 4.2.4, (ie. 2.6.4 and 5.1.1 respectively) on the basis if you're upgrading you may as well take the latest.

Specific advice is to check the dependency tree for mismatches (mvn dependency:tree), where you specify one version but don't get it everywhere. Since the exception mentions Hibernate, the version of hazelcast-hibernate should be the one most likely to be problematic.

hazelcast-hibernate53 here lists compatibility with Hibernate 5.3/5.4 but you're using 5.6.

Upvotes: 1

Related Questions