[
https://issues.apache.org/jira/browse/JCR-1587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12596405#action_12596405
]
Marcel Reutegger commented on JCR-1587:
---------------------------------------
The sequence of checking the various places where an ItemState can reside is
not correct in XAItemStateManager.
E.g. in getItemState() first checks the transaction change log if it contains
an item. If the item is not known to the change log the base class
(LocalItemStateManager) is called. This means the change logs and item state
managers are checked in the following sequence:
1) transaction change log
2) local change log
3) shared item state manager
This is actually wrong and should rather be:
1) local change log
2) transaction change log
3) shared item state manager
The test fails because the property for the version label "2" is marked deleted
in the transaction change log, while at the same time is added in the local
change log. Because the sequence of the checks is wrong, the version label
property is incorrectly reported as destroyed.
> When trying to reuse version label in transaction, exception is thrown
> ----------------------------------------------------------------------
>
> Key: JCR-1587
> URL: https://issues.apache.org/jira/browse/JCR-1587
> Project: Jackrabbit
> Issue Type: Bug
> Components: versioning
> Affects Versions: core 1.4.3, core 1.4.4
> Environment: Jackrabbit Core 1.4.4, Jencks 2.0, Springmodules 0.8a,
> Jackrabbit JCA 1.4
> Java version: 1.6.0_06
> OS name: "windows vista" version: "6.0" arch: "x86" Family: "windows"
> Reporter: Roman Puchkovskiy
> Attachments: test-reassign-version-label-in-tx.zip
>
>
> Following sequence causes failure:
> 1. first transaction:
> 1.1 create versionable node
> 1.2 create version 1 of this node
> 2. second transaction:
> 2.1 create version 2 of this node
> 2.2 assign a label to version 2
> 3. third transaction:
> 3.1 restore a node to version 1
> 3.2 remove version 2
> 3.3 make version 3 of same node
> 3.4 assign same label (which was assigned to version 2) to version 3 ->
> fails
> Same sequence which does not use transactions at all works fine.
> Going to attach a test case.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.