Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3F7C19349 for ; Mon, 9 Apr 2012 11:29:45 +0000 (UTC) Received: (qmail 91275 invoked by uid 500); 9 Apr 2012 11:29:44 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 91173 invoked by uid 500); 9 Apr 2012 11:29:44 -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 91145 invoked by uid 99); 9 Apr 2012 11:29:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 09 Apr 2012 11:29:43 +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; Mon, 09 Apr 2012 11:29:40 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 12FD4361092 for ; Mon, 9 Apr 2012 11:29:19 +0000 (UTC) Date: Mon, 9 Apr 2012 11:29:19 +0000 (UTC) From: "Unico Hommes (Updated) (JIRA)" To: dev@jackrabbit.apache.org Message-ID: <2026001095.2429.1333970959099.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <2006485076.675.1333877898544.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (JCR-3289) Remove operation right after move operation causes missing child inconsistency 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-3289?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Unico Hommes updated JCR-3289: ------------------------------ Attachment: (was: ConcurrentAddMoveRemoveTest.patch) > Remove operation right after move operation causes missing child inconsistency > ------------------------------------------------------------------------------ > > Key: JCR-3289 > URL: https://issues.apache.org/jira/browse/JCR-3289 > Project: Jackrabbit Content Repository > Issue Type: Bug > Affects Versions: 2.2.11, 2.4 > Reporter: Unico Hommes > Priority: Critical > Fix For: 2.2.12, 2.4.2 > > Attachments: ItemSaveOperation.patch, MoveRemoveTest.patch > > > The scenario is as follows: > 1. Session s1 does a move operation on node /folder1/node to destination /folder2/node > 2. Session s2 does a remove operation on node /folder1/node > 3. Session s1 is saved > 4. Session s2 is saved > A consistency check shows that /folder2 has a child node entry for inexistent child node node. > The problem is that step 4. should fail whereas it doesn't. > This is caused by the fact that the ItemSaveOperation.removeTransientItems puts the overlayed state of the transient state in the changelog instead of the transient state itself. But the overlayed state has the updated modcount of the previous move operation. Therefore when the shared item state manager persists the changelog it doesn't detect that the remove was done on a stale item and so the update can succeed. > Attached is a patch containing a testcase that reproduces the inconsistency with this scenario. > Another patch is for the ItemSaveOperation class which fixes the issue. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira