Return-Path: Delivered-To: apmail-jackrabbit-users-archive@locus.apache.org Received: (qmail 37653 invoked from network); 17 Feb 2007 12:32:10 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 17 Feb 2007 12:32:10 -0000 Received: (qmail 19267 invoked by uid 500); 17 Feb 2007 12:32:17 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 19242 invoked by uid 500); 17 Feb 2007 12:32:17 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 19226 invoked by uid 99); 17 Feb 2007 12:32:17 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 17 Feb 2007 04:32:17 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of stefan.guggisberg@gmail.com designates 64.233.182.188 as permitted sender) Received: from [64.233.182.188] (HELO nf-out-0910.google.com) (64.233.182.188) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 17 Feb 2007 04:32:06 -0800 Received: by nf-out-0910.google.com with SMTP id x4so1908907nfb for ; Sat, 17 Feb 2007 04:31:45 -0800 (PST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=NKVVF82lD9cN4jYV8n0N4x2yg3vCkcMo6koegbsdhPdZNyCfaemNe3dyIrlSyZlqZFx2Ebuug0E4AGoC0OpH19kMw/2THN+fMzB4tEpWY4wUTC+WAUqvtxH890sGNPrlFBDUaG/x0+zihgmJAXLATbxo/FUtM+5lxAlSB9wn5AA= Received: by 10.82.167.5 with SMTP id p5mr6622608bue.1171715504934; Sat, 17 Feb 2007 04:31:44 -0800 (PST) Received: by 10.49.3.2 with HTTP; Sat, 17 Feb 2007 04:31:44 -0800 (PST) Message-ID: <90a8d1c00702170431p55c4182by7ef0bc6ca6c9f8d7@mail.gmail.com> Date: Sat, 17 Feb 2007 13:31:44 +0100 From: "Stefan Guggisberg" To: users@jackrabbit.apache.org Subject: Re: NoSuchItemStateException when concurrently adding nodes with JCA and XA transactions In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline References: X-Virus-Checked: Checked by ClamAV on apache.org hi andrzej, this seems to be a versioning related concurrency issue. please file a jira issue. a simple test case that demonstrates the issue would further help. cheers stefan On 2/16/07, Andrzej Dengusiak wrote: > Hi! > We're using Jackrabbit 1.2.1 with JCA, versioning and XA transactions on > JBoss 4.0.3SP1. > Everything works fine as long as there is only one user accessing repository > and adding nodes at a given time. > But sometimes if there are more users concurrently adding nodes under the > same node, following error occurs: > > 2007-02-16 17:39:30,545 INFO [STDOUT] Caused by: > javax.jcr.RepositoryException: 14fad421-1276-47b2-b667-50b2013944e3: > 14fad421-1276-47b2-b667-50b2013944e3 > 2007-02-16 17:39:30,545 INFO [STDOUT] at > org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:504) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.core.version.AbstractVersionManager.createVersionHisto > ry(AbstractVersionManager.java:306) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.core.version.XAVersionManager.createVersionHistory(XAV > ersionManager.java:144) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.core.ItemImpl.initVersionHistories(ItemImpl.java:771) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1181) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:821) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:178) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > xxx.dms.helpers.DmsHelper.saveSession(DmsHelper.java:131) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > xxx.dms.ejb.DmsSessionBean.addDocumentMetadata(DmsSessionBean.java:173) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 > ) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl > .java:25) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > java.lang.reflect.Method.invoke(Method.java:324) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.invocation.Invocation.performCall(Invocation.java:359) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles > sSessionContainer.java:237) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Cach > edConnectionInterceptor.java:158) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe > ssionInstanceInterceptor.java:169) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.ws.server.ServiceEndpointInterceptor.invoke(ServiceEndpointInterce > ptor.java:64) > 2007-02-16 17:39:30,595 INFO [STDOUT] at > org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterce > ptor.java:63) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor > .java:121) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT. > java:350) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:16 > 8) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinde > rInterceptor.java:136) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > org.jboss.ejb.Container.invoke(Container.java:954) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 > ) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl > .java:25) > 2007-02-16 17:39:30,655 INFO [STDOUT] at > java.lang.reflect.Method.invoke(Method.java:324) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java > :155) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.mx.server.Invocation.invoke(Invocation.java:86) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:26 > 4) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > 2007-02-16 17:39:30,665 INFO [STDOUT] at > org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke(JRMPIn > voker.java:819) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:420) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 > ) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl > .java:25) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > java.lang.reflect.Method.invoke(Method.java:324) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.rmi.transport.Transport$1.run(Transport.java:148) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > java.security.AccessController.doPrivileged(Native Method) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.rmi.transport.Transport.serviceCall(Transport.java:144) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7 > 01) > 2007-02-16 17:39:30,715 INFO [STDOUT] ... 1 more > 2007-02-16 17:39:30,715 INFO [STDOUT] Caused by: > org.apache.jackrabbit.core.state.NoSuchItemStateException: > 14fad421-1276-47b2-b667-50b2013944e3 > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedI > temStateManager.java:261) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalIte > mStateManager.java:95) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalIte > mStateManager.java:150) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemState > Manager.java:226) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:532) > 2007-02-16 17:39:30,715 INFO [STDOUT] at > org.apache.jackrabbit.core.version.NodeStateEx.store(NodeStateEx.java:502) > 2007-02-16 17:39:30,775 INFO [STDOUT] ... 48 more > > > Code causing above exception can be simplified to such EJB method with CMT: > > Repository repository = (Repository) context.lookup("java:/jcr/jackrabbit"); > Session session = repository.login(new SimpleCredentials("system", > "".toCharArray())); > session.getRootNode().getNode("documents"); // "documents" node is > versionable > Node documentNode = rootNode.addNode(someuniquename, "xxx:document"); > session.save(); > documentNode.checkin(); > > > We're using org.apache.jackrabbit.core.fs.local.LocalFileSystem > and org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager with > external BLOBs > > Are we doing something wrong or is it a bug? This issue is blocking > production use of Jackrabbit for us. > > regards, > Andrzej Dengusiak >