title: org.hibernate.util.JDBCExceptionReporter - Connection has already been closed
body: <p>Getting the error below while saving an object. Could anyone please let me know this log stands for -     </p>
  
  <pre><code>2013-04-25 01:22:44 [ajp-bio-8009-exec-3908] ERROR org.hibernate.event.def.AbstractFlushingEventListener  - Could not synchronize database state with session
      org.hibernate.exception.GenericJDBCException: could not insert collection: [consumer.phoneNumber#2527830]
          at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
          at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
          at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
          at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1243)
          at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
          at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
          at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
          at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:188)
          at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
          at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
          at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
          at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
          at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
          at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76)
          ........
  
      Caused by: java.sql.SQLException: Connection has already been closed.
          at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:67)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:140)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41)
          at $Proxy59.prepareStatement(Unknown Source)
          at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
          at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)
          at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)
          at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)
          at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1179)
          ... 92 more
      2013-04-25 01:22:44 [ajp-bio-8009-exec-3908] ERROR org.hibernate.transaction.JDBCTransaction  - Could not toggle autocommit
      java.sql.SQLException: Connection has already been closed.
          at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:140)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41)
          at $Proxy59.setAutoCommit(Unknown Source)
          at org.hibernate.transaction.JDBCTransaction.toggleAutoCommit(JDBCTransaction.java:224)
          at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:216)
          at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:192)
          at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:88)
          at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:512)
          at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)
          at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
          at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
          at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)
          at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
           .......
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:679)
      2013-04-25 01:22:44 [ajp-bio-8009-exec-3908] ERROR org.hibernate.transaction.JDBCTransaction  - JDBC rollback failed
      java.sql.SQLException: Connection has already been closed.
          at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke(AbstractCreateStatementInterceptor.java:71)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke(ConnectionState.java:140)
          at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:95)
          at org.apache.tomcat.jdbc.pool.TrapException.invoke(TrapException.java:41)
          at $Proxy59.rollback(Unknown Source)
          ...........
  </code></pre>