[ 
https://issues.apache.org/jira/browse/JCR-2057?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sébastien Launay updated JCR-2057:
----------------------------------

    Attachment: JCR-2057-2009-04-07.zip

Test for reproducing this bug, dependencies are described in dependencies.txt.

> When creating multiple repository instances pointing to the same home, 
> opening a second session will remove the .lock file
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: JCR-2057
>                 URL: https://issues.apache.org/jira/browse/JCR-2057
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.7, 1.5.3
>         Environment: Ubuntu Intrepid
>            Reporter: Sébastien Launay
>         Attachments: JCR-2057-2009-04-07.zip
>
>
> The following test case can be used to reproduce the bug:
> Repository repo1 = new TransientRepository(repoConfig);
> Session session1_1 = repo1.login(...);
> Session session2_2 = repo1.login(...);
> Repository repo2 = new TransientRepository(repoConfig); // Will not fail 
> (expected)
> Session session2_1 = repo2.login(...); // Will fail with 
> javax.jcr.RepositoryException: The repository home /tmp/_repository appears 
> to be already locked by the current process (expected)
> Session session2_2 = repo2.login(...); // Will work!
> Repository repo3 = new TransientRepository(repoConfig); // Will not fail 
> either (expected)
> Session session3_1 = repo3.login(...); // Will fail with 
> javax.jcr.RepositoryException: The repository home /tmp/_repository appears 
> to be already locked by the current process (expected)
> Session session3_2 = repo3.login(...); // Will fail with 
> javax.jcr.RepositoryException: Directory was previously created with a 
> different LockFactory instance
> Open the first session in repo2 will fails but will also remove the .lock 
> file, thus the second
> session will succeed and may corrupt the repository because there are 
> multiple session
> opened from multiple repository.
> The same behaviour occurs for repo3, the .lock file is removed but it is a 
> slightly different case
> as a new exception will be thrown while creating the Lucene index.
> This is a clearly a twisted case as repositories pointing to the same home 
> must not be created
> simultaneously but i think that it must be more robust to prevent data 
> corruption.
> I reproduce the bug on JR 1.4.7 and 1.5.3 but i think it affects at least all 
> versions of JR < 1.5.3.

-- 
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