Description
Observed using postgres. An SQLException being thrown and a transaction not being rolled back properly causes the connection to be returned to the connection pool in a bad state.
Subsequent attempts to get the connection from the connection pool result in:
[java] Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection [java] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140) [java] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128) [java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) [java] at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) [java] at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) [java] at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) [java] at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) [java] at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1616) [java] at org.hibernate.loader.Loader.doQuery(Loader.java:717) [java] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) [java] at org.hibernate.loader.Loader.loadCollection(Loader.java:2082) [java] at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62) [java] at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628) [java] at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83) [java] at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853) [java] at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:369) [java] at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:111) [java] at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186) [java] at com.cenqua.crucible.model.ReviewParticipant.getCompletedFrxs(ReviewParticipant.java:221) [java] at com.cenqua.crucible.model.ReviewParticipant.getPercentageComplete(ReviewParticipant.java:239) [java] at sun.reflect.GeneratedMethodAccessor801.invoke(Unknown Source) [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [java] at java.lang.reflect.Method.invoke(Method.java:597) [java] at javax.el.BeanELResolver.getValue(BeanELResolver.java:293) [java] ... 185 more [java] Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block [java] at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062) [java] at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795) [java] at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257) [java] at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479) [java] at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353) [java] at org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLQuery(AbstractJdbc2Connection.java:243) [java] at org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLQuery(AbstractJdbc2Connection.java:235) [java] at org.postgresql.jdbc2.AbstractJdbc2Connection.getTransactionIsolation(AbstractJdbc2Connection.java:724) [java] at com.jolbox.bonecp.ConnectionHandle.getTransactionIsolation(ConnectionHandle.java:633) [java] at com.jolbox.bonecp.provider.BoneCPConnectionProvider.getConnection(BoneCPConnectionProvider.java:185) [java] at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446) [java] ... 204 more