jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (JCR-1552) Concurrent conflicting property creation sometimes doesn't fail
Date Thu, 24 Apr 2008 12:59:21 GMT

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


Mime
View raw message