Opened 8 years ago

Closed 5 years ago

#856 closed defect (invalid)

Investigate and fix HTTP 500 error

Reported by: Willem Elbers Owned by: Twan Goosen
Priority: major Milestone: VirtualCollectionRegistry-1.1
Component: VCRegistry Version:
Keywords: Cc:

Description

HTTP Status 500 - unexpected error when rollbacking

type Exception report

message unexpected error when rollbacking

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.persistence.PersistenceException: unexpected error when rollbacking
	org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:110)
	eu.clarin.cmdi.virtualcollectionregistry.DataStore.closeEntityManager(DataStore.java:78)
	eu.clarin.cmdi.virtualcollectionregistry.rest.PersistenceFilter.doFilter(PersistenceFilter.java:38)
	de.mpg.aai.shhaa.AuthFilter.doFilter(AuthFilter.java:84)
root cause

org.hibernate.exception.GenericJDBCException: Cannot release connection
	org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
	org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
	org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:478)
	org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:429)
	org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:316)
	org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:269)
	org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)
	org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:107)
	eu.clarin.cmdi.virtualcollectionregistry.DataStore.closeEntityManager(DataStore.java:78)
	eu.clarin.cmdi.virtualcollectionregistry.rest.PersistenceFilter.doFilter(PersistenceFilter.java:38)
	de.mpg.aai.shhaa.AuthFilter.doFilter(AuthFilter.java:84)
root cause

java.sql.SQLException: Already closed.
	org.apache.tomcat.dbcp.dbcp.PoolableConnection.close(PoolableConnection.java:114)
	org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:191)
	org.hibernate.connection.DatasourceConnectionProvider.closeConnection(DatasourceConnectionProvider.java:97)
	org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:474)
	org.hibernate.jdbc.ConnectionManager.aggressiveRelease(ConnectionManager.java:429)
	org.hibernate.jdbc.ConnectionManager.afterTransaction(ConnectionManager.java:316)
	org.hibernate.jdbc.JDBCContext.afterTransactionCompletion(JDBCContext.java:269)
	org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)
	org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:107)
	eu.clarin.cmdi.virtualcollectionregistry.DataStore.closeEntityManager(DataStore.java:78)
	eu.clarin.cmdi.virtualcollectionregistry.rest.PersistenceFilter.doFilter(PersistenceFilter.java:38)
	de.mpg.aai.shhaa.AuthFilter.doFilter(AuthFilter.java:84)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.

Change History (4)

comment:1 Changed 8 years ago by Twan Goosen

What is the exact context, i.e. what can I do to reproduce it?
I have encountered the "Already closed" exception before and it seems to be related to how Wicket and Hibernate (do not) work together. My proposal would be to make the front end use the REST service instead, which IMO should simplify the application architecture as well. But if needed, we can investigate this issue some more :)

comment:2 Changed 8 years ago by Willem Elbers

The context is currently unkown. This happens now and then on the production instance upon accessing http://clarin.ids-mannheim.de/vcr/app/public, but it is not easy to reproduce.

comment:3 Changed 7 years ago by Twan Goosen

Owner: changed from Twan Goosen to Twan Goosen
Status: newassigned

comment:4 Changed 5 years ago by Willem Elbers

Resolution: invalid
Status: assignedclosed

This doesn't happen anymore

Note: See TracTickets for help on using tickets.