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.

Reply via email to