Exception logged when repository is shut down ---------------------------------------------
Key: JCR-2163 URL: https://issues.apache.org/jira/browse/JCR-2163 Project: Jackrabbit Content Repository Issue Type: Bug Components: jackrabbit-core Affects Versions: 1.5.0 Reporter: Sascha Theves It seems we have the same problem as described in JCR-1499 but we are using the 1.5.0 build and there the fix should already be included. We got exceptions when we try to shut down JackRabbit with JackrabbitRepository#shutdown() and using a derby database. We tried it with derby 10.4.2.0 and 10.5.1.1 but got the same exceptions. The exceptions are occuring since we are using JNDI for database access. Here is our error log: 2009-06-19 14:28:24,817 [OSGi Console] WARN DatabaseFileSystem - execute failed, about to reconnect... 2009-06-19 14:28:24,817 [OSGi Console] WARN DatabaseFileSystem - execute failed, about to reconnect... 2009-06-19 14:28:34,808 [OSGi Console] ERROR DatabaseFileSystem - failed to re-establish connection java.sql.SQLNonTransientConnectionException: A network protocol error was encountered and the connection has been terminated: the requested command encountered an unarchitected and implementation-specific condition for which there was no architected message at org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source) at org.apache.derby.client.am.Connection.prepareStatement(Unknown Source) at xxx.jndi.TSDataSource$TSConnection.prepareStatement(TSDataSource.java:516) at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.initPreparedStatements(DatabaseFileSystem.java:1291) at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.reestablishConnection(DatabaseFileSystem.java:1041) at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.executeStmt(DatabaseFileSystem.java:1085) at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.exists(DatabaseFileSystem.java:338) at org.apache.jackrabbit.core.fs.BasedFileSystem.exists(BasedFileSystem.java:121) at org.apache.jackrabbit.core.fs.FileSystemResource.makeParentDirs(FileSystemResource.java:102) at org.apache.jackrabbit.core.RepositoryImpl.storeRepProps(RepositoryImpl.java:1303) at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1176) at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1111) at org.apache.jackrabbit.core.TransientRepository.stopRepository(TransientRepository.java:271) at org.apache.jackrabbit.core.TransientRepository.loggedOut(TransientRepository.java:423) at org.apache.jackrabbit.core.SessionImpl.notifyLoggedOut(SessionImpl.java:600) at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1174) at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:403) at xxx.repository.internal.RuleRepositorySession.logout(RuleRepositorySession.java:110) at xxx.repository.internal.RuleRepositoryManager.logout(RuleRepositoryManager.java:576) at xxx.repository.internal.RuleRepositoryManager.stopRuleRepository(RuleRepositoryManager.java:530) at xxx.tearDownRuleRepository(TeamServerApplication.java:554) at xxx.stop(TeamServerApplication.java:212) at org.eclipse.equinox.internal.app.EclipseAppHandle.destroySpecific(EclipseAppHandle.java:87) at org.osgi.service.application.ApplicationHandle.destroy(ApplicationHandle.java:168) at org.eclipse.equinox.internal.app.EclipseAppContainer.stopAllApps(EclipseAppContainer.java:377) at org.eclipse.equinox.internal.app.EclipseAppContainer.bundleChanged(EclipseAppContainer.java:365) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1234) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:211) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:141) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1518) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1469) at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:667) at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:576) at org.eclipse.osgi.framework.internal.core.OSGi.close(OSGi.java:41) at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._close(FrameworkCommandProvider.java:1154) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:150) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:302) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.console(FrameworkConsole.java:287) at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:223) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.derby.client.am.DisconnectException: A network protocol error was encountered and the connection has been terminated: the requested command encountered an unarchitected and implementation-specific condition for which there was no architected message at org.apache.derby.client.net.NetConnectionReply.parseCMDCHKRM(Unknown Source) at org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source) at org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source) at org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source) at org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source) at org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown Source) at org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown Source) at org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source) at org.apache.derby.client.am.Connection.prepareStatementX(Unknown Source) ... 43 more Here is our repository.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.4//EN" "http://jackrabbit.apache.org/dtd/repository-1.4.dtd"> <Repository> <FileSystem class="org.apache.jackrabbit.core.fs.db.DerbyFileSystem"> <param name="url" value="java:comp/env/jdbc/repository" /> <param name="schemaObjectPrefix" value="fs_" /> <param name="driver" value="javax.naming.InitialContext" /> <param name="schema" value="derby"/> </FileSystem> <Security appName="Jackrabbit"> <AccessManager class="xxx.internal.security.RuleRepositoryAccessManager"> </AccessManager> <LoginModule class="xxx.internal.security.RuleRepositoryLoginModule"> </LoginModule> </Security> <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" /> <Workspace name="${wsp.name}"> <FileSystem class="org.apache.jackrabbit.core.fs.db.DerbyFileSystem"> <param name="url" value="java:comp/env/jdbc/repository" /> <param name="schemaObjectPrefix" value="${wsp.name}_" /> <param name="driver" value="javax.naming.InitialContext" /> <param name="schema" value="derby"/> </FileSystem> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager"> <param name="url" value="java:comp/env/jdbc/repository" /> <param name="schemaObjectPrefix" value="${wsp.name}_" /> <param name="driver" value="javax.naming.InitialContext" /> <param name="schema" value="derby"/> </PersistenceManager> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${wsp.home}/index" /> <param name="useCompoundFile" value="true" /> <param name="minMergeDocs" value="100" /> <param name="volatileIdleTime" value="3" /> <param name="maxMergeDocs" value="2147483647" /> <param name="mergeFactor" value="10" /> <param name="maxFieldLength" value="10000" /> <param name="bufferSize" value="10" /> <param name="cacheSize" value="1000" /> <param name="forceConsistencyCheck" value="false" /> <param name="enableConsistencyCheck" value="false" /> <param name="autoRepair" value="true" /> <param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer" /> <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" /> <param name="respectDocumentOrder" value="true" /> <param name="resultFetchSize" value="2147483647" /> <param name="extractorPoolSize" value="0" /> <param name="extractorTimeout" value="100" /> <param name="extractorBackLogSize" value="100" /> </SearchIndex> <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"> </ISMLocking> </Workspace> <Versioning rootPath="${rep.home}/version"> <FileSystem class="org.apache.jackrabbit.core.fs.db.DerbyFileSystem"> <param name="url" value="java:comp/env/jdbc/repository" /> <param name="schemaObjectPrefix" value="version_" /> <param name="driver" value="javax.naming.InitialContext" /> <param name="schema" value="derby"/> </FileSystem> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager"> <param name="url" value="java:comp/env/jdbc/repository" /> <param name="schemaObjectPrefix" value="version_" /> <param name="driver" value="javax.naming.InitialContext" /> <param name="schema" value="derby"/> </PersistenceManager> <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"> </ISMLocking> </Versioning> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${rep.home}/repository/index" /> </SearchIndex> </Repository> And our workspace.xml (we have only the default workspace): <?xml version="1.0" encoding="UTF-8"?> <Workspace name="default"> <FileSystem class="org.apache.jackrabbit.core.fs.db.DerbyFileSystem"> <param name="url" value="java:comp/env/jdbc/repository"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="driver" value="javax.naming.InitialContext"/> <param name="schema" value="derby"/> </FileSystem> <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager"> <param name="url" value="java:comp/env/jdbc/repository"/> <param name="schemaObjectPrefix" value="${wsp.name}_"/> <param name="driver" value="javax.naming.InitialContext"/> <param name="schema" value="derby"/> </PersistenceManager> <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex"> <param name="path" value="${wsp.home}/index"/> <param name="useCompoundFile" value="true"/> <param name="minMergeDocs" value="100"/> <param name="volatileIdleTime" value="3"/> <param name="maxMergeDocs" value="2147483647"/> <param name="mergeFactor" value="10"/> <param name="maxFieldLength" value="10000"/> <param name="bufferSize" value="10"/> <param name="cacheSize" value="1000"/> <param name="forceConsistencyCheck" value="false"/> <param name="enableConsistencyCheck" value="false"/> <param name="autoRepair" value="true"/> <param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer"/> <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/> <param name="respectDocumentOrder" value="true"/> <param name="resultFetchSize" value="2147483647"/> <param name="extractorPoolSize" value="0"/> <param name="extractorTimeout" value="100"/> <param name="extractorBackLogSize" value="100"/> </SearchIndex> <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"> </ISMLocking> </Workspace> -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.