Hikari 1.3.8 and MySQLNonTransientException: No operations allowed after statement closed

684 views
Skip to first unread message

Robert Niestroj

unread,
May 30, 2014, 8:42:32 AM5/30/14
to hika...@googlegroups.com
Hi, im using
Java 7
Wicket 6.13
Hikari CP 1.3.8
spring 3.2
Wildfly 8
Hibernate 4.3.1
Fedora 16
MySQL 5.5
with the LocalContainerEntityManagerFactoryBean approach:

The DS is configured like this:
   @Bean
   public DataSource dataSource() {
      Properties propFile = propertiesFile();
      HikariConfig config = new HikariConfig();
      config.setDriverClassName(propFile.getProperty("db.driverclassname"));
      config.setJdbcUrl(propFile.getProperty("db.url"));
      config.setUsername(propFile.getProperty("db.username"));
      config.setPassword(propFile.getProperty("db.password"));
      config.setPoolName("springHikariCp");
      config.setMaximumPoolSize(100);
      config.setConnectionTestQuery("SELECT 1");
      config.setMinimumIdle(10);
      return new HikariDataSource(config);
   }

On Windows and SQL Server it works on Linux and MySQL after saving an entitiy i get a WARN like this:
2014-05-30 14:22:26,630 WARN  [com.zaxxer.hikari.proxy.ConnectionProxy] (default task-3) Connection com.mysql.jdbc.JDBC4Connection@4f50ac10 (springHikariCp) marked as broken because of SQLSTATE(08003), ErrorCode(0).: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
    at sun.reflect.GeneratedConstructorAccessor117.newInstance(Unknown Source) [:1.7.0_45]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_45]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_45]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.Util.getInstance(Util.java:386) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:461) [mysql-connector-java-5.1.25.jar:]
    at com.mysql.jdbc.StatementImpl.getMaxRows(StatementImpl.java:2216) [mysql-connector-java-5.1.25.jar:]
    at com.zaxxer.hikari.proxy.PreparedStatementJavassistProxy.getMaxRows(PreparedStatementJavassistProxy.java)
    at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.close(JdbcCoordinatorImpl.java:530) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.release(JdbcCoordinatorImpl.java:407) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.releaseStatements(AbstractBatchImpl.java:173) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:76) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3281) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3183) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3525) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:158) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:453) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:345) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:350) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:56) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1218) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:421) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177) [hibernate-core-4.3.1.Final.jar:4.3.1.Final]
    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:77) [hibernate-entitymanager-4.3.1.Final.jar:4.3.1.Final]
    at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:512) [spring-orm-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754) [spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723) [spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:147) [spring-tx-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.codehaus.grepo.query.commons.repository.GenericQueryRepositorySupport.executeCallback(GenericQueryRepositorySupport.java:128) [grepo-query-commons-1.5.3.jar:]
    at org.codehaus.grepo.query.commons.repository.GenericQueryRepositorySupport.executeCallbackWithStatistics(GenericQueryRepositorySupport.java:149) [grepo-query-commons-1.5.3.jar:]
    at org.codehaus.grepo.query.jpa.repository.ReadWriteJpaRepositoryImpl.merge(ReadWriteJpaRepositoryImpl.java:76) [grepo-query-jpa-1.5.3.jar:]
    at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) [:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) [spring-aop-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) [spring-aop-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) [spring-aop-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.codehaus.grepo.query.commons.repository.GenericQueryMethodInterceptor.invoke(GenericQueryMethodInterceptor.java:70) [grepo-query-commons-1.5.3.jar:]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) [spring-aop-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) [spring-aop-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    at com.sun.proxy.$Proxy99.merge(Unknown Source)
    at com.company.zaprogs.web.ankieta.services.AnkietaServiceImpl.save(AnkietaServiceImpl.java:58) [classes:]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_45]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
    at org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:435) [wicket-ioc-6.15.0.jar:6.15.0]
    at com.sun.proxy.$Proxy117.save(Unknown Source)
    at com.company.zaprogs.web.ankieta.components.AnkietaSavingEditableTextArea$3.onUpdate(AnkietaSavingEditableTextArea.java:77) [classes:]
    at org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior.onEvent(AjaxFormComponentUpdatingBehavior.java:151) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:123) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:633) [wicket-core-6.15.0.jar:6.15.0]
    at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source) [:1.7.0_45]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_45]
    at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_45]
    at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:250) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) [wicket-request-6.15.0.jar:6.15.0]
    at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201) [wicket-core-6.15.0.jar:6.15.0]
    at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282) [wicket-core-6.15.0.jar:6.15.0]
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]

Any ideas how to resolve this? I would like to solve it through configuration. Where to look?

Brett Wooldridge

unread,
May 30, 2014, 9:51:31 AM5/30/14
to
This same issue was encountered over at the jHipster project.  It took a long time to troubleshoot (as you can see from that bug), and lots of fingers were pointed at HikariCP, but ultimately it turned out to be a bug in Hibernate 4.3.1.  Updating to Hibernate 4.3.2 should fix it.  At this point the HikariCP 1.3.8 release has proven to be ridiculously solid.


Robert Niestroj

unread,
May 30, 2014, 3:56:49 PM5/30/14
to hika...@googlegroups.com
I thought that it is not a Hikari bug, because in dev and on MS SQL i didnt had the exception, but i knew i would get here help. Thx for the answer.
Reply all
Reply to author
Forward
0 new messages