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 775B86B00 for ; Fri, 15 Jul 2011 09:22:06 +0000 (UTC) Received: (qmail 6575 invoked by uid 500); 15 Jul 2011 09:22:03 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 5449 invoked by uid 500); 15 Jul 2011 09:21:32 -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 5411 invoked by uid 99); 15 Jul 2011 09:21:24 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 15 Jul 2011 09:21:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,RISK_FREE,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; Fri, 15 Jul 2011 09:21:21 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id D7780587BC for ; Fri, 15 Jul 2011 09:20:59 +0000 (UTC) Date: Fri, 15 Jul 2011 09:20:59 +0000 (UTC) From: "Stefan Guggisberg (JIRA)" To: dev@jackrabbit.apache.org Message-ID: <683403062.16646.1310721659878.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <247883311.3343.1310399999864.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Updated] (JCR-3018) save leading to ReferentialIntegrityException leaves the repository in inconsistent state MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-3018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Guggisberg updated JCR-3018: ----------------------------------- Priority: Minor (was: Major) AFAIK there's no risk of repository corruption involved. a NodeImpl object, representing a transiently added new node, is being reused after a failed save operation. the NodeImpl instance has been rendered invalid through the failed save operation. methods called on this invalidated instance throw InvalidItemStateException. the session state however is not affected. retrieving a 'fresh' NodeImpl instance after the failed save call avoids the problem. > save leading to ReferentialIntegrityException leaves the repository in inconsistent state > ----------------------------------------------------------------------------------------- > > Key: JCR-3018 > URL: https://issues.apache.org/jira/browse/JCR-3018 > Project: Jackrabbit Content Repository > Issue Type: Bug > Components: jackrabbit-core > Reporter: Julian Reschke > Priority: Minor > > This is similar to JCR-2503. > After a failed save() due to ReferentialIntegrityException and a subsequent successfull save() operation, nodes that were transient upon the first save and were persisted in the 2nd save will be corrupted, a getPath() operation failing with: > javax.jcr.InvalidItemStateException: Item does not exist anymore: 75fe7eb7-7747-476e-bba8-c7f6b7f6e1a8 > at org.apache.jackrabbit.core.ItemImpl.itemSanityCheck(ItemImpl.java:116) > at org.apache.jackrabbit.core.ItemImpl.perform(ItemImpl.java:90) > at org.apache.jackrabbit.core.ItemImpl.getPath(ItemImpl.java:376) > The test is identical to the one added for JCR-2503, except that the node does not get refetched using getNodeByIdentifier. > (test case follows) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira