Tools: JDK 1.5.0_04, Spring 1.2.1, Hibernate 3.0.5, Cocoon 2.1.7
We've been using the OpenSessionInViewFilter for months now without much
incident at all (aside from the usual carelessness that comes with
closing and opening sessions around HTTP Requests). Lately though,
there's been this error that happens when I save a collection of
entities and try to reload them. The errors below happen when the
application hangs and I have to shut down the Jetty web server. It
hangs after the opening JDBC connection line:
[java] 2005-09-02 10:17:23,057 [PoolThread-4] DEBUG - more......
[java] 2005-09-02 10:17:23,057 [PoolThread-4] DEBUG - executing flush
[java] 2005-09-02 10:17:23,057 [PoolThread-4] DEBUG - post flush
[java] 2005-09-02 10:17:23,057 [PoolThread-4] DEBUG - opened
session at timestamp: 4610791190761472
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - find: from
com.invoqsystems.apex.access.DefaultAdministrativeGroupImpl ag where
ag.organization = ?
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - parameters:
[com.invoqsystems.apex.model.location.Organization#1]
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - named
parameters: {}
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - compile() :
The query is already compiled, skipping...
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - about to open
PreparedStatement (open PreparedStatements: 0, globally: 0)
[java] 2005-09-02 10:17:23,058 [PoolThread-4] DEBUG - opening JDBC
connection
=== THE APPLICATION HANGS HERE ===
=== I SHUT IT DOWN AFTERWARDS... ===
[java] 10:19:06.762 EVENT Shutdown hook executing
[java] 10:19:06.763 EVENT Stopping Acceptor
ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8888]
[java] 10:19:06.774 EVENT Stopped SocketListener on 0.0.0.0:8888
[java] 10:19:06.775 EVENT Closing Spring root WebApplicationContext
[java] 2005-09-02 10:19:06,776 [Shutdown] INFO - closing
[java] 2005-09-02 10:19:06,783 [Shutdown] ERROR - Destroy method on
bean with name 'sessionFactory' threw an exception
[java] java.lang.IllegalStateException: The cocoon-ehcache-1 Cache
is not alive.
[java] at net.sf.ehcache.Cache.checkStatus(Cache.java:713)
[java] at net.sf.ehcache.Cache.dispose(Cache.java:618)
[java] at
net.sf.ehcache.CacheManager.shutdown(CacheManager.java:382)
[java] at
org.hibernate.cache.EhCacheProvider.stop(EhCacheProvider.java:137)
[java] at
org.hibernate.impl.SessionFactoryImpl.close(SessionFactoryImpl.java:803)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
[java] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:585)
[java] at
org.springframework.orm.hibernate3.LocalSessionFactoryBean$TransactionAwareInvocationHandler.invoke(LocalSessionFactoryBean.java:962)
[java] at $Proxy0.close(Unknown Source)
[java] at
org.springframework.orm.hibernate3.LocalSessionFactoryBean.destroy(LocalSessionFactoryBean.java:923)
[java] at
org.springframework.beans.factory.support.AbstractBeanFactory$1.destroy(AbstractBeanFactory.java:868)
[java] at
org.springframework.beans.factory.support.AbstractBeanFactory.destroyBean(AbstractBeanFactory.java:950)
[java] at
org.springframework.beans.factory.support.AbstractBeanFactory.destroyDisposableBean(AbstractBeanFactory.java:926)
[java] at
org.springframework.beans.factory.support.AbstractBeanFactory.destroySingletons(AbstractBeanFactory.java:530)
[java] at
org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:511)
[java] at
org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:290)
[java] at
org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:71)
[java] at
org.mortbay.jetty.servlet.WebApplicationContext.stop(WebApplicationContext.java:494)
[java] at org.mortbay.http.HttpContext.stop(HttpContext.java:1949)
[java] at org.mortbay.http.HttpServer.stop(HttpServer.java:732)
[java] at org.mortbay.http.HttpServer.stop(HttpServer.java:700)
[java] at org.mortbay.jetty.Server$1.run(Server.java:455)
[java] 2005-09-02 10:19:06,791 [PoolThread-4] DEBUG - after autocommit
[java] 2005-09-02 10:19:06,791 [PoolThread-4] DEBUG - after
transaction completion
[java]
"file:/usr/local/webserver/webapp/configmgr/flow/UI_Flow.js", line
2,243: uncaught JavaScript exception:
[java] at AdministrativeGroups
(file:/usr/local/webserver/webapp/configmgr/flow/UI_Flow.js, Line 2243):
[java] java.lang.IllegalStateException: Pool not open
[java] 2005-09-02 10:19:06,994 [PoolThread-4] DEBUG - closing session
[java] 2005-09-02 10:19:06,996 [PoolThread-4] DEBUG - closing JDBC
connection [ (open PreparedStatements: 0, globally: 1) (open ResultSets:
0, globally: 0)]
[java] 2005-09-02 10:19:06,997 [PoolThread-4] DEBUG - after
transaction completion
[java] 2005-09-02 10:19:06,997 [PoolThread-4] DEBUG - after
transaction completion
[java] 2005-09-02 10:19:06,997 [PoolThread-4] ERROR - Unexpected
exception on closing Hibernate Session
[java] java.lang.IllegalStateException: Pool not open
[java] at
org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:123)
[java] at
org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:898)
[java] at
org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:80)
[java] at
org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:180)
[java] at
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:94)
[java] at
org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:327)
[java] at
org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:262)
[java] at
org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:194)
[java] at
org.hibernate.impl.SessionImpl.close(SessionImpl.java:289)
[java] at
org.springframework.orm.hibernate3.SessionFactoryUtils.doClose(SessionFactoryUtils.java:775)
[java] at
org.springframework.orm.hibernate3.SessionFactoryUtils.processDeferredClose(SessionFactoryUtils.java:712)
[java] at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:190)
[java] at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
[java] at
org.mortbay.jetty.servlet.WebApplicationHandler$Chain.doFilter(WebApplicationHandler.java:334)
[java] at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:286)
[java] at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
[java] at
org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
[java] at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
[java] at
org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
[java] at org.mortbay.http.HttpServer.service(HttpServer.java:879)
[java] at
org.mortbay.http.HttpConnection.service(HttpConnection.java:789)
[java] at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:960)
[java] at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:806)
[java] at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:218)
[java] at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:300)
[java] at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
[java] 2005-09-02 10:19:07,000 [PoolThread-4] DEBUG - closing session
[java] 2005-09-02 10:19:07,001 [PoolThread-4] DEBUG - closing session
[java] 2005-09-02 10:19:07,001 [PoolThread-4] DEBUG - closing JDBC
connection [ (open PreparedStatements: 0, globally: 1) (open ResultSets:
0, globally: 0)]
[java] 2005-09-02 10:19:07,001 [PoolThread-4] DEBUG - after
transaction completion
[java] 2005-09-02 10:19:07,001 [PoolThread-4] DEBUG - after
transaction completion
Anyone know what to do about this? I'll probably go to the Hibernate
forums with it too, but I wanted to start here. I could upgrade to the
latest Spring too just to cover my bases...
Many thanks,
Dustin
--
Dustin N. Jenkins
Application Developer
Invoq Systems, Inc.
AlarmPoint - Guaranteed Event Resolution
#216 - 852 Fort Street
Victoria, BC V8W 1H8
Tel: (250) 380-0304
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
http://www.invoqsystems.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]