С чего начать, когда у вас есть эти проблемы? У меня проблемы с воссозданием этой ошибки в моей среде разработки.
Мы запускаем этот код на сервере смолы. И у нас есть плагины, запущенные в потоках в транзакции.
И у нас есть код, который сбрасывает сеанс, а некоторые нет. Есть ли какие-либо записи, которые предоставляют более полезную информацию, чем эта.
06:44:48 [ERROR]: AbstractHibernateFactory.java:127 - Cought this saving a sherlock.common.dao.BatchLog
org.hibernate.exception.JDBCConnectionException: could not insert: [sherlock.common.dao.BatchLog]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2329)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2836)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:677)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:669)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:665)
at framework.hibernate.service.AbstractHibernateFactory.saveOrUpdate(AbstractHibernateFactory.java:124)
at sherlock.common.service.BatchServiceImpl.log(BatchServiceImpl.java:148)
at sherlock.common.service.BatchServiceImpl.log(BatchServiceImpl.java:128)
at sherlock.plugin.imports.CompanyImportPlugin.executePlugin(CompanyImportPlugin.java:184)
at sherlock.backend.job.AbstractHibernatePlugin.execute(AbstractHibernatePlugin.java:70)
at sherlock.backend.job.AbstractPluginJobTask.run(AbstractPluginJobTask.java:180)
at framework.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:174)Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
at com.mysql.jdbc.Util.getInstance(Util.java:384)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:404)
at com.mysql.jdbc.PreparedStatement.clearParameters(PreparedStatement.java:1140)
at com.mysql.jdbc.jdbc2.optional.PreparedStatementWrapper.clearParameters(PreparedStatementWrapper.java:805)
at com.caucho.sql.UserPreparedStatement.clearParameters(UserPreparedStatement.java:158)
at com.caucho.sql.UserPreparedStatement.close(UserPreparedStatement.java:724)
at org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:563)
at org.hibernate.jdbc.AbstractBatcher.closeStatement(AbstractBatcher.java:291)
at org.hibernate.id.insert.AbstractReturningDelegate.releaseStatement(AbstractReturningDelegate.java:82)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:60)
... 21 more
06:44:48 [INFO]: plugin.java:196 - End plugin
06:44:48 [ERROR]: AssertionFailure.java:45 - an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: null id in sherlock.common.dao.BatchLog entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:88)
at com.caucho.transaction.TransactionImpl.callBeforeCompletion(TransactionImpl.java:843)
at com.caucho.transaction.TransactionImpl.commit(TransactionImpl.java:582)
at com.caucho.transaction.TransactionManagerImpl.commit(TransactionManagerImpl.java:271)
at com.caucho.jca.UserTransactionImpl.commit(UserTransactionImpl.java:436)
at com.caucho.jca.UserTransactionProxy.commit(UserTransactionProxy.java:167)
at sherlock.backend.job.AbstractPluginJobTask.endTransaction(AbstractPluginJobTask.java:126)
at sherlock.backend.job.AbstractPluginJobTask.run(AbstractPluginJobTask.java:202)
at framework.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:174)
06:44:48 [ERROR]: AbstractPluginJobTask.java:135 - Couldn't commit!
javax.transaction.RollbackException: org.hibernate.AssertionFailure: null id in sherlock.common.dao.BatchLog entry (don't flush the Session after an exception occurs)
at com.caucho.transaction.TransactionImpl.callBeforeCompletion(TransactionImpl.java:847)
at com.caucho.transaction.TransactionImpl.commit(TransactionImpl.java:582)
at com.caucho.transaction.TransactionManagerImpl.commit(TransactionManagerImpl.java:271)
at com.caucho.jca.UserTransactionImpl.commit(UserTransactionImpl.java:436)
at com.caucho.jca.UserTransactionProxy.commit(UserTransactionProxy.java:167)
at sherlock.backend.job.AbstractPluginJobTask.endTransaction(AbstractPluginJobTask.java:126)
at sherlock.backend.job.AbstractPluginJobTask.run(AbstractPluginJobTask.java:202)
at framework.util.task.TaskEngine$TaskEngineWorker.run(TaskEngine.java:174)
Caused by: org.hibernate.AssertionFailure: null id in sherlock.common.dao.BatchLog entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:82)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:190)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:147)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:88)
at com.caucho.transaction.TransactionImpl.callBeforeCompletion(TransactionImpl.java:843)
... 7 more