users@glassfish.java.net

[gf-users] Re: Glassfish throws IllegalStateException

From: Ed Bratt <ed.bratt_at_oracle.com>
Date: Sun, 01 Jun 2014 13:46:59 -0700

Hi Noah,
Does this also happen in GlassFish 4.0? If you haven't tried, could you
duplicate this in the latest version?
-- Ed

On 5/30/2014 9:26 AM, Noah White wrote:
> Glassfish 3.1.2 b23
> JDK 1.7.0_45 x64 Windows
> Oracle ojdbc6 driver
>
> I’m seeing Glassfish connection pool code throw the following exception. The application uses container managed TXs w/a JTA resource. Here are a few of the associated connection pools settings (I can supply all of them if needed):
>
> Connection Leak Timeout set to 0
> Connection Leak Reclaim unchecked
> Statement Leak Timeout set to 0
> Statement Leak Reclaim unchecked
> Creation Retry Attempts 90
> Retry Interval 10 seconds
> Lazy Association Enabled is checked
> Associate with Thread Enabled is checked
> Match Connections Enabled is not checked
> Max Connection Usage is 0
>
> Caused by: java.lang.IllegalStateException: state.isBusy() : false
> at com.sun.enterprise.resource.pool.ConnectionPool.resourceClosed(ConnectionPool.java:1008)
> at com.sun.enterprise.resource.pool.PoolManagerImpl.putbackResourceToPool(PoolManagerImpl.java:428)
> at com.sun.enterprise.resource.pool.PoolManagerImpl.resourceClosed(PoolManagerImpl.java:382)
> at com.sun.enterprise.resource.listener.LocalTxConnectionEventListener.connectionClosed(LocalTxConnectionEventListener.java:77)
> at com.sun.gjc.spi.ManagedConnection.connectionClosed(ManagedConnection.java:784)
> at com.sun.gjc.spi.base.ConnectionHolder.close(ConnectionHolder.java:217)
> at com.sun.gjc.spi.jdbc40.ConnectionHolder40.close(ConnectionHolder40.java:587)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.closeDatasourceConnection(DatabaseAccessor.java:473)
> at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.closeConnection(DatasourceAccessor.java:504)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.closeConnection(DatabaseAccessor.java:496)
> at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.decrementCallCount(DatasourceAccessor.java:274)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.closeStatement(DatabaseAccessor.java:394)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.releaseStatement(DatabaseAccessor.java:1543)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:665)
> at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:535)
> at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1717)
> at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:566)
> at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:207)
> at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207)
> at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193)
> at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:264)
> at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelect(DatasourceCallQueryMechanism.java:246)
> at org.eclipse.persistence.queries.DataReadQuery.executeNonCursor(DataReadQuery.java:197)
> at org.eclipse.persistence.queries.DataReadQuery.executeDatabaseQuery(DataReadQuery.java:152)
> at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:844)
> at org.eclipse.persistence.queries.DataReadQuery.execute(DataReadQuery.java:137)
> at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:2831)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1516)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1498)
> at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1449)
> at org.eclipse.persistence.sequencing.QuerySequence.select(QuerySequence.java:309)
> at org.eclipse.persistence.sequencing.QuerySequence.updateAndSelectSequence(QuerySequence.java:254)
> at org.eclipse.persistence.sequencing.StandardSequence.getGeneratedVector(StandardSequence.java:71)
> at org.eclipse.persistence.sequencing.Sequence.getGeneratedVector(Sequence.java:257)
> at org.eclipse.persistence.internal.sequencing.SequencingManager$Preallocation_NoTransaction_State.getNextValue(SequencingManager.java:664)
> at org.eclipse.persistence.internal.sequencing.SequencingManager.getNextValue(SequencingManager.java:1067)
> at org.eclipse.persistence.internal.sequencing.ClientSessionSequencing.getNextValue(ClientSessionSequencing.java:70)
> at org.eclipse.persistence.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:349)
> at org.eclipse.persistence.internal.descriptors.ObjectBuilder.assignSequenceNumber(ObjectBuilder.java:308)
> at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.assignSequenceNumber(UnitOfWorkImpl.java:465)
> at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNotRegisteredNewObjectForPersist(UnitOfWorkImpl.java:4231)
> at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.registerNotRegisteredNewObjectForPersist(RepeatableWriteUnitOfWork.java:513)
> at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4176)
> at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:440)
> at com.sun.enterprise.container.common.impl.EntityManagerWrapper.persist(EntityManagerWrapper.java:269)
>
> -Noah
>
>