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.