You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2008/04/24 14:59:21 UTC

[jira] Issue Comment Edited: (JCR-1552) Concurrent conflicting property creation sometimes doesn't fail

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

stefan@jira edited comment on JCR-1552 at 4/24/08 5:58 AM:
-----------------------------------------------------------------

> AFAIK that's outside the scope of this issue. We've never supported such isolation levels and AFAIUI there has never been an intention to do that. InvalidItemStateException is meant for cases where an intervening save makes the underlying content incompatible with the changes that the current session is trying to save.

+1, that's my understanding as well

      was (Author: stefan@jira):
    > AFAIK that's outside the scope of this issue. We've never supported such isolation levels and AFAIUI there has never been an intention to do that. InvalidItemStateException is meant for cases where an intervening save makes the underlying content incompatible with the changes that the current session is trying to save.

+1, that's my inderstanding as well
  
> Concurrent conflicting property creation sometimes doesn't fail
> ---------------------------------------------------------------
>
>                 Key: JCR-1552
>                 URL: https://issues.apache.org/jira/browse/JCR-1552
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: core 1.4.2
>            Reporter: Thomas Mueller
>            Assignee: Stefan Guggisberg
>             Fix For: 1.5
>
>
> The following test prints "Success":
>        Session s1 = ...
>        Session s2 = ...
>        s1.getRootNode().setProperty("b", "0"); // init with zero
>        s1.getRootNode().setProperty("b", (String) null); // delete
>        s1.save();
>        s1.getRootNode().setProperty("b", "1");
>        s2.getRootNode().setProperty("b", "2");
>        s1.save();
>        s2.save();
>        System.out.println("Success");
> However  if the line marked "... // delete" is commented out, 
> it fails with the following exception:
> javax.jcr.InvalidItemStateException:
> cafebabe-cafe-babe-cafe-babecafebabe/{}b: the item cannot be saved
> because it has been modified externally.
>        at org.apache.jackrabbit.core.ItemImpl.getTransientStates(ItemImpl.java:246)
>        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:928)
>        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:849)
> It should fail in all cases. If we decide it shouldn't fail, it needs to be documented.

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