You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Andrew Perepelytsya (JIRA)" <ji...@apache.org> on 2008/08/06 19:42:46 UTC

[jira] Commented: (JCR-1557) Avoid exceptions during shutting repository down if several PMs/FSs use same DB

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

Andrew Perepelytsya commented on JCR-1557:
------------------------------------------

The issue isn't really fixed in 1.4.5. It works for DB PMs, but didn't change a thing for *bundle* PMs, e.g. for org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager the stacktrace is the same:

[08-06 13:38:58] WARN  DbFileSystem [Shutdown]: execute failed, about to reconnect...
[08-06 13:39:08] ERROR RepositoryImpl [Shutdown]: Error while closing Version Manager.
java.sql.SQLException: No current connection.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(Unknown Source)
	at org.apache.derby.impl.jdbc.EmbedConnection.getMetaData(Unknown Source)
	at org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager.close(DerbyPersistenceManager.java:312)
	at org.apache.jackrabbit.core.version.VersionManagerImpl.close(VersionManagerImpl.java:196)
	at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1000)
	at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:948)
	at org.springmodules.jcr.jackrabbit.RepositoryFactoryBean.destroy(RepositoryFactoryBean.java:91)
	at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:154)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:397)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:375)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:348)
	at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:861)
	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:839)
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:802)
	at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:367)
	at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:70)
	at org.mortbay.jetty.handler.ContextHandler.doStop(ContextHandler.java:573)
	at org.mortbay.jetty.webapp.WebAppContext.doStop(WebAppContext.java:484)
	at org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
	at org.mortbay.jetty.handler.HandlerWrapper.doStop(HandlerWrapper.java:129)
	at org.mortbay.jetty.Server.doStop(Server.java:281)
	at org.mortbay.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:65)
	at org.mortbay.jetty.Server$ShutdownHookThread.run(Server.java:559)
[08-06 13:39:08] WARN  DbFileSystem [Shutdown]: execute failed, about to reconnect...
[08-06 13:39:18] INFO  log [Shutdown]: Shutdown hook complete

Process finished with exit code 1


Looking at org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager, the close() implementation is quite different from its db counterpart, shouldn't it have the same fixes?

> Avoid exceptions during shutting repository down if several PMs/FSs use same DB
> -------------------------------------------------------------------------------
>
>                 Key: JCR-1557
>                 URL: https://issues.apache.org/jira/browse/JCR-1557
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.2
>         Environment: Apache Derby / 10.3.2.1 - (599110)
>            Reporter: Roman Puchkovskiy
>            Priority: Minor
>             Fix For: core 1.4.5
>
>         Attachments: repository.xml
>
>
> According to docs and forum discussions, it's legal to use same DB for different FileSystems/Persistence Managers. Such configurations seem to work fine, but when repository is stopped, exceptions are produced like following:
> SEVERE: Error while closing Version Manager.
> java.sql.SQLNonTransientConnectionException: No current connection.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.Util.noCurrentConnection(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.checkIfClosed(Unknown Source)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.getMetaData(Unknown Source)
> 	at org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager.closeConnection(DerbyPersistenceManager.java:109)
> 	at org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.close(DatabasePersistenceManager.java:261)
> 	at org.apache.jackrabbit.core.version.VersionManagerImpl.close(VersionManagerImpl.java:201)
> 	at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1000)
> 	at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:948)
> 	at org.apache.jackrabbit.core.TransientRepository.stopRepository(TransientRepository.java:275)
> 	at org.apache.jackrabbit.core.TransientRepository.loggedOut(TransientRepository.java:427)
> 	at org.apache.jackrabbit.core.SessionImpl.notifyLoggedOut(SessionImpl.java:574)
> 	at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1247)
> 	at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:403)
> 	at com.blandware.tooling.jcrplugin.ExportMojo.execute(ExportMojo.java:81)
> 	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:493)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:463)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
> 	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
> 	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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
> 	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> 	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
> 	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: java.sql.SQLException: No current connection.
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> 	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
> 	... 35 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.