Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 68243 invoked from network); 13 Mar 2007 12:59:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Mar 2007 12:59:35 -0000 Received: (qmail 68893 invoked by uid 500); 13 Mar 2007 12:59:40 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 68810 invoked by uid 500); 13 Mar 2007 12:59:39 -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 68757 invoked by uid 99); 13 Mar 2007 12:59:39 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Mar 2007 05:59:39 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Mar 2007 05:59:30 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id BE8FA714076 for ; Tue, 13 Mar 2007 05:59:09 -0700 (PDT) Message-ID: <28427447.1173790749777.JavaMail.jira@brutus> Date: Tue, 13 Mar 2007 05:59:09 -0700 (PDT) From: =?utf-8?Q?Claus_K=C3=B6ll_=28JIRA=29?= To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-769) Unable to login with two different Credentials to same workspace in one Transaction In-Reply-To: <26328297.1172563568650.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-769?page=3Dcom.atlassian.ji= ra.plugin.system.issuetabpanels:comment-tabpanel#action_12480380 ]=20 Claus K=C3=B6ll commented on JCR-769: -------------------------------- I have changed the code in the XASessionImpl to store the TransactionContex= t with the GlobalTransactionId as Key in the txGlobal Map=20 instead the whole Xid Object to get only one TransactionContext Object duri= ng the whole XATransaction This works fine for me and i think this is the right way.=20 I have traced the entire XA Transaction.=20 As you will see the problem with the lock in the WorkspaceInfo Object still= occurs without my Patch ! The Log: =3D2007-03-13 13:43:52,043 INFO - XASessionImpl start for org.apache.jackr= abbit.core.XASessionImpl@6bf66bf6 with Xid: {XID: formatId(57415344), gtrid= _length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a22= 0c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb7= 28420000004842354235)}=20 =3D2007-03-13 13:43:52,059 INFO - XASessionImpl start flag is TMNOFLAGS=20 =3D2007-03-13 13:43:52,090 INFO - XASessionImpl found Transaction: null=20 =3D2007-03-13 13:43:52,090 INFO - XASessionImpl associate for org.apache.= jackrabbit.core.XASessionImpl@6bf66bf6 with Context: org.apache.jackrabbit.= core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,106 INFO - XASessionImpl start for org.apache.jackr= abbit.core.XASessionImpl@30ac30ac with Xid: {XID: formatId(57415344), gtrid= _length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a22= 0c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb7= 28420000004877407740)}=20 =3D2007-03-13 13:43:52,106 INFO - XASessionImpl start flag is TMNOFLAGS=20 =3D2007-03-13 13:43:52,106 INFO - XASessionImpl found Transaction: org.apa= che.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,106 INFO - XASessionImpl associate for org.apache.= jackrabbit.core.XASessionImpl@30ac30ac with Context: org.apache.jackrabbit.= core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,621 INFO - at.gv.tirol.common.jcr.security.AccessMa= nager.isGranted()[MESSAGE] No AccessNodeList check for Node:*=09{}2d3d89030= a0c889a36853685d9d417b1.pdf=09{http://www.jcp.org/jcr/1.0}content=20 =3D2007-03-13 13:43:52,621 INFO - at.gv.tirol.common.jcr.security.AccessMa= nager.isGranted()[MESSAGE] No AccessNodeList check for Node:*=09{}2d3d89030= a0c889a36853685d9d417b1.pdf=20 =3D2007-03-13 13:43:52,621 INFO - at.gv.tirol.common.jcr.security.AccessMa= nager.isGranted()[MESSAGE] No AccessNodeList check for Node:*=09{}2d3d89030= a0c889a36853685d9d417b1.pdf=09{http://www.jcp.org/jcr/1.0}content=20 =3D2007-03-13 13:43:52,653 INFO - at.gv.tirol.common.jcr.security.AccessMa= nager.isGranted()[MESSAGE] No AccessNodeList check for Node:*=09{}2d3d89030= a0c889a36853685d9d417b1.pdf=20 =3D2007-03-13 13:43:52,653 INFO - at.gv.tirol.common.jcr.security.AccessMa= nager.isGranted()[MESSAGE] Access to Root Node=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl end for org.apache.jackrab= bit.core.XASessionImpl@30ac30ac with Xid: {XID: formatId(57415344), gtrid_l= ength(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a220c= 9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb728= 420000004877407740)}=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl associate for org.apache.= jackrabbit.core.XASessionImpl@30ac30ac with Context: null=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl end for org.apache.jackrab= bit.core.XASessionImpl@6bf66bf6 with Xid: {XID: formatId(57415344), gtrid_l= ength(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a220c= 9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb728= 420000004842354235)}=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl associate for org.apache.= jackrabbit.core.XASessionImpl@6bf66bf6 with Context: null=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl prepare for org.apache.jac= krabbit.core.XASessionImpl@30ac30ac with Xid: {XID: formatId(57415344), gtr= id_length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a= 220c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7ed= b728420000004877407740)}=20 =3D2007-03-13 13:43:52,684 INFO - XASessionImpl TransactionContext.prepare= start=20 =3D2007-03-13 13:43:52,684 INFO - TransactionContext prepare beforeOperati= on() start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,684 INFO - TransactionContext prepare beforeOperati= on end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,684 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,684 INFO - Resource is org.apache.jackrabbit.core.X= AWorkspace$1@74817481=20 XAWorkspace prepare in XAResourceBegin lockAcquire start =3D2007-03-13 13:43:52,684 INFO - WorkspaceInfo lockAcquire() lock is alre= ady false=20 XAWorkspace prepare in XAResourceBegin lockAcquire end =3D2007-03-13 13:43:52,684 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,684 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,684 INFO - Resource is org.apache.jackrabbit.core.s= tate.XAItemStateManager@2ad32ad3=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.l= ock.XALockManager@176a176a=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.v= ersion.XAVersionManager@42bf42bf=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.X= AWorkspace$2@45f945f9=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare afterOperatio= n start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare afterOperatio= n end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare Method end on= org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl TransactionContext.prepare= end=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl return 0=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl prepare for org.apache.jac= krabbit.core.XASessionImpl@6bf66bf6 with Xid: {XID: formatId(57415344), gtr= id_length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a= 220c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7ed= b728420000004842354235)}=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl TransactionContext.prepare= start=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare beforeOperati= on() start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare beforeOperati= on end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.X= AWorkspace$1@74817481=20 *** A Lock will be aquired but if we do not check if a lock is already on i= t a Deadlock will occur ! XAWorkspace prepare in XAResourceBegin lockAcquire start =3D2007-03-13 13:43:52,715 INFO - WorkspaceInfo lockAcquire() lock is alre= ady true=20 XAWorkspace prepare in XAResourceBegin lockAcquire end =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.s= tate.XAItemStateManager@2ad32ad3=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.l= ock.XALockManager@176a176a=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.v= ersion.XAVersionManager@42bf42bf=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - Resource is org.apache.jackrabbit.core.X= AWorkspace$2@45f945f9=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare prepareResour= ce end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare afterOperatio= n start on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare afterOperatio= n end on org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - TransactionContext prepare Method end on= org.apache.jackrabbit.core.TransactionContext@11ec11ec=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl TransactionContext.prepare= end=20 =3D2007-03-13 13:43:52,715 INFO - XASessionImpl return 0=20 =3D2007-03-13 13:43:52,731 INFO - XASessionImpl commit for org.apache.jack= rabbit.core.XASessionImpl@6bf66bf6 with Xid: {XID: formatId(57415344), gtri= d_length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a2= 20c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb= 728420000004842354235)}=20 =3D2007-03-13 13:43:52,731 INFO - XASessionImpl commit for org.apache.jack= rabbit.core.XASessionImpl@30ac30ac with Xid: {XID: formatId(57415344), gtri= d_length(39), bqual_length(28), data(0000000000000006000000488d8c7348c471a2= 20c9a781d64d29d7e7edb72842736572766572318d8c7348c471a220c9a781d64d29d7e7edb= 728420000004877407740)}=20 The next Problem is now that the commit Method from the first Session will = delete the TransactionContext from the Cache and this is very bad because t= he second Session will not find the TransactionContext in the Cache in its commit Method, so = a XAException(XAException.XAER_NOTA) will occur. I hope this stack will help to understand the problem. > Unable to login with two different Credentials to same workspace in one T= ransaction > -------------------------------------------------------------------------= ---------- > > Key: JCR-769 > URL: https://issues.apache.org/jira/browse/JCR-769 > Project: Jackrabbit > Issue Type: Bug > Components: jca > Affects Versions: 1.2.1 > Environment: Websphere 5.1.1 J2C Adapter > Reporter: Claus K=C3=B6ll > Attachments: patch.txt, stacktrace.txt > > > I'm using the Jackrabbit 1.2.1 JCA adapter and trying to access in a Sess= ionBean-Method with Container Transaction a Workspace with 2 different Cred= entials.=20 > The Method takes about 400ms to finish but no commit on TransactionContex= tr occurs (Debugging ..) only the prepare was called 2 times . > The Container hangs on the PostInvoke Method about 5 seconds and then i g= et a "javax.transaction.xa.XAException"=20 > with the Warn Message: Transaction rolled back because timeout expired > The code .. > Context ctx =3D new InitialContext();=20 > Repository repository =3D (Repository) ctx.lookup("java:comp/env/jackrabb= it");=20 > Credentials credentials =3D new SimpleCredentials("user1", "password1".to= CharArray());=20 > Credentials credentials2 =3D new SimpleCredentials("user2", "password2".t= oCharArray());=20 > Session session1 =3D repository.login(credentials, "default");=20 > Session session2 =3D repository.login(credentials2, "default");=20 > Session1 adds a node to the workspace .. and with the session2 i do nothi= ng except the login ! > If i make no second login the Method works fine. --=20 This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.