[ 
https://issues.apache.org/jira/browse/JCR-3169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13162686#comment-13162686
 ] 

Sascha Theves commented on JCR-3169:
------------------------------------

That is because the DerbyPersistenceManager closes the database connection and 
all other attempts from the file systems or other persistence managers 
resulting in the exception from summary. The DerbyPersistenceManager should use 
a 'shutdownOnClose' property like the DerbyFileSystem to avoid the problem here.
                
> Exception when shutting down Jackrabbit using a NOT embedded Derby database
> ---------------------------------------------------------------------------
>
>                 Key: JCR-3169
>                 URL: https://issues.apache.org/jira/browse/JCR-3169
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 2.2.9
>         Environment: Windows XP, Derby 10.4.2 with 
> org.apache.derby.jdbc.ClientDriver
>            Reporter: Sascha Theves
>            Priority: Minor
>
> You get an exception when shutting down Jackrabbit if you use a Derby 
> database and org.apache.derby.jdbc.ClientDriver as driver:
> {code}
> 2011-12-05 10:20:01,554 [main] [ERROR] (o.a.j.c.f.d.DatabaseFileSystem:425) - 
> failed to check existence of folder: /
> org.apache.commons.dbcp.SQLNestedException: Borrow prepareStatement from pool 
> failed
>       at 
> org.apache.commons.dbcp.PoolingConnection.prepareStatement(PoolingConnection.java:113)
>  ~[commons-dbcp-1.3.jar:1.3]
>       at 
> org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281)
>  ~[commons-dbcp-1.3.jar:1.3]
>       at 
> org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313)
>  ~[commons-dbcp-1.3.jar:1.3]
>       at 
> org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyExec(ConnectionHelper.java:355)
>  ~[jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:339)
>  ~[jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:335)
>  ~[jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:458)
>  ~[jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.util.db.ConnectionHelper.exec(ConnectionHelper.java:335)
>  ~[jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.isFolder(DatabaseFileSystem.java:418)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.getOutputStream(DatabaseFileSystem.java:703)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.fs.FileSystemResource.getOutputStream(FileSystemResource.java:174)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.lock.LockManagerImpl.save(LockManagerImpl.java:334)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.lock.LockManagerImpl.close(LockManagerImpl.java:218)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doDispose(RepositoryImpl.java:2222)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.dispose(RepositoryImpl.java:2157)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1114)
>  [jackrabbit-core-2.2.9.jar:2.2.9]
>       at 
> org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1065) 
> [jackrabbit-core-2.2.9.jar:2.2.9]
>       ...
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.6.0_23]
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> ~[na:1.6.0_23]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>  ~[na:1.6.0_23]
>       at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_23]
>       at 
> org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:273)
>  [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:199)
>  [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:487)
>  [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:463)
>  [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:431)
>  [spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1048)
>  [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1022)
>  [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:970)
>  [spring-context-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:378)
>  [spring-web-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:78)
>  [spring-web-3.0.5.RELEASE.jar:3.0.5.RELEASE]
>       at 
> org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3869)
>  [catalina.jar:na]
>       at 
> org.apache.catalina.core.StandardContext.stop(StandardContext.java:4503) 
> [catalina.jar:na]
>       at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098) 
> [catalina.jar:na]
>       at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098) 
> [catalina.jar:na]
>       at 
> org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448) 
> [catalina.jar:na]
>       at 
> org.apache.catalina.core.StandardService.stop(StandardService.java:584) 
> [catalina.jar:na]
>       at 
> org.apache.catalina.core.StandardServer.stop(StandardServer.java:744) 
> [catalina.jar:na]
>       at org.apache.catalina.startup.Catalina.stop(Catalina.java:616) 
> [catalina.jar:na]
>       at org.apache.catalina.startup.Catalina.start(Catalina.java:591) 
> [catalina.jar:na]
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
> ~[na:1.6.0_23]
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
> ~[na:1.6.0_23]
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>  ~[na:1.6.0_23]
>       at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_23]
>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) 
> [bootstrap.jar:na]
>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 
> [bootstrap.jar:na]
> Caused by: java.sql.SQLNonTransientConnectionException: Es wurde ein 
> Netzprotokollfehler gefunden. Die Verbindung wurde beendet. Der angeforderte 
> Befehl hat eine implementierungsspezifische, nicht in der Spezifikation 
> enthaltene Bedingung festgestellt, für die keine Nachricht implementiert ist.
>       at 
> org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at org.apache.derby.client.am.SqlException.getSQLException(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at org.apache.derby.client.am.Connection.prepareStatement(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.commons.dbcp.PoolingConnection.makeObject(PoolingConnection.java:285)
>  ~[commons-dbcp-1.3.jar:1.3]
>       at 
> org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:1179)
>  ~[commons-pool-1.5.4.jar:1.5.4]
>       at 
> org.apache.commons.dbcp.PoolingConnection.prepareStatement(PoolingConnection.java:107)
>  ~[commons-dbcp-1.3.jar:1.3]
>       ... 47 common frames omitted
> Caused by: org.apache.derby.client.am.DisconnectException: Es wurde ein 
> Netzprotokollfehler gefunden. Die Verbindung wurde beendet. Der angeforderte 
> Befehl hat eine implementierungsspezifische, nicht in der Spezifikation 
> enthaltene Bedingung festgestellt, für die keine Nachricht implementiert ist.
>       at org.apache.derby.client.net.NetConnectionReply.parseCMDCHKRM(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown
>  Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown
>  Source) ~[derbyclient-10.4.2.0.jar:na]
>       at 
> org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown
>  Source) ~[derbyclient-10.4.2.0.jar:na]
>       at org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source) 
> ~[derbyclient-10.4.2.0.jar:na]
>       at org.apache.derby.client.am.Connection.prepareStatementX(Unknown 
> Source) ~[derbyclient-10.4.2.0.jar:na]
>       ... 51 common frames omitted
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to