Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 14001 invoked from network); 10 Feb 2011 15:07:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Feb 2011 15:07:32 -0000 Received: (qmail 77034 invoked by uid 500); 10 Feb 2011 15:07:22 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 75700 invoked by uid 500); 10 Feb 2011 15:07:19 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 75460 invoked by uid 99); 10 Feb 2011 15:07:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Feb 2011 15:07:19 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Feb 2011 15:07:18 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id D926619D0C4 for ; Thu, 10 Feb 2011 15:06:57 +0000 (UTC) Date: Thu, 10 Feb 2011 15:06:57 +0000 (UTC) From: "Jukka Zitting (JIRA)" To: dev@jackrabbit.apache.org Message-ID: <634323313.8070.1297350417885.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <11716842.187571295965183863.JavaMail.jira@thor> Subject: [jira] Resolved: (JCR-2870) Transient Repository cannot be used more than once when configured with DataSources MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/JCR-2870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jukka Zitting resolved JCR-2870. -------------------------------- Resolution: Fixed After deeper review I don't think the JCA test failures are caused by this change, so re-resolving. See JCR-2889 for more details. > Transient Repository cannot be used more than once when configured with DataSources > ----------------------------------------------------------------------------------- > > Key: JCR-2870 > URL: https://issues.apache.org/jira/browse/JCR-2870 > Project: Jackrabbit Content Repository > Issue Type: Bug > Components: jackrabbit-core > Affects Versions: 2.1.2, 2.1.3, 2.2.0, 2.2.1 > Environment: WindowsXP, Linux, Oracle, Derby > Reporter: Chris Schmidt > Assignee: Jukka Zitting > Fix For: 2.2.4 > > Attachments: jackrabbit-transient-issue.zip, jcr-2870.patch > > > The TransientRepository cannot be used more than once when the repository is configured with the DataSources construct. This has been verified with both Oracle and Derby configurations. Once the TransientRepository closes for the first time, the ConnectionFactory class sets a boolean value named closed to 'true'. Thereafter, any use of the ConnectionFactory throws a runtime exception. > The following stacktrace is thrown on the second attempt to utilize the repository: > 2011-01-25 08:12:14 DatabaseFileSystem [ERROR] failed to initialize file system > java.lang.IllegalStateException: this factory has already been closed > at org.apache.jackrabbit.core.util.db.ConnectionFactory.sanityCheck(ConnectionFactory.java:213) > at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataBaseType(ConnectionFactory.java:134) > at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:228) > at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190) > at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057) > at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:892) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:284) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:602) > at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:179) > at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) > at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) > at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) > ... > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) > 2011-01-25 08:12:14 RepositoryImpl [ERROR] failed to start Repository: File system initialization failure. > javax.jcr.RepositoryException: File system initialization failure. > at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1060) > at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:892) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:284) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:602) > at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:179) > at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) > at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) > at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) > at TransientRepositoryTest.addNodeToRepository(TransientRepositoryTest.java:32) > at TransientRepositoryTest.shouldNotFailWhenUsingTransientRepositoryTwice(TransientRepositoryTest.java:26) > ... > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) > Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initialize file system > at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:210) > at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057) > ... 42 more > Caused by: java.lang.IllegalStateException: this factory has already been closed > at org.apache.jackrabbit.core.util.db.ConnectionFactory.sanityCheck(ConnectionFactory.java:213) > at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataBaseType(ConnectionFactory.java:134) > at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:228) > at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190) > ... 43 more > 2011-01-25 08:12:14 RepositoryImpl [ERROR] Error while closing Version Manager. > java.lang.NullPointerException > at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1117) > at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1063) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:388) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:602) > at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:179) > at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) > at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) > at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) > at TransientRepositoryTest.addNodeToRepository(TransientRepositoryTest.java:32) > at TransientRepositoryTest.shouldNotFailWhenUsingTransientRepositoryTwice(TransientRepositoryTest.java:26) > ... > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) > 2011-01-25 08:12:14 RepositoryImpl [ERROR] In addition to startup fail, another unexpected problem occurred while shutting down the repository again. > java.lang.NullPointerException > at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1136) > at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1063) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:388) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:602) > at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:179) > at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) > at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) > at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) > at TransientRepositoryTest.addNodeToRepository(TransientRepositoryTest.java:32) > at TransientRepositoryTest.shouldNotFailWhenUsingTransientRepositoryTwice(TransientRepositoryTest.java:26) > ... > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) > javax.jcr.RepositoryException: File system initialization failure. > at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1060) > at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:892) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:284) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:602) > at org.apache.jackrabbit.core.TransientRepository$1.getRepository(TransientRepository.java:179) > at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) > at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) > at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) > at TransientRepositoryTest.addNodeToRepository(TransientRepositoryTest.java:32) > at TransientRepositoryTest.shouldNotFailWhenUsingTransientRepositoryTwice(TransientRepositoryTest.java:26) > ... > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115) > Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initialize file system > at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:210) > at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057) > ... 42 more > Caused by: java.lang.IllegalStateException: this factory has already been closed > at org.apache.jackrabbit.core.util.db.ConnectionFactory.sanityCheck(ConnectionFactory.java:213) > at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataBaseType(ConnectionFactory.java:134) > at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:228) > at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190) > ... 43 more -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira