Return-Path: Delivered-To: apmail-db-derby-dev-archive@www.apache.org Received: (qmail 80706 invoked from network); 3 Aug 2009 23:47:32 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Aug 2009 23:47:32 -0000 Received: (qmail 1672 invoked by uid 500); 3 Aug 2009 23:47:37 -0000 Delivered-To: apmail-db-derby-dev-archive@db.apache.org Received: (qmail 1604 invoked by uid 500); 3 Aug 2009 23:47:37 -0000 Mailing-List: contact derby-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: Delivered-To: mailing list derby-dev@db.apache.org Received: (qmail 1596 invoked by uid 99); 3 Aug 2009 23:47:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Aug 2009 23:47:37 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 Aug 2009 23:47:35 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id DB1D2234C046 for ; Mon, 3 Aug 2009 16:47:14 -0700 (PDT) Message-ID: <2017374523.1249343234896.JavaMail.jira@brutus> Date: Mon, 3 Aug 2009 16:47:14 -0700 (PDT) From: "Tiago R. Espinha (JIRA)" To: derby-dev@db.apache.org Subject: [jira] Updated: (DERBY-1016) javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction In-Reply-To: <353482326.1140545362120.JavaMail.jira@ajax.apache.org> 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/DERBY-1016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tiago R. Espinha updated DERBY-1016: ------------------------------------ Attachment: DERBY-1016.patch I'm attaching a second patch that adds a new fixture to XATransaction to test for the existence of this bug. With Ravinder's patch, the fixture passes correctly. I'll be running suites.All with both patches on. > javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction > ---------------------------------------------------------------------------------------------------------- > > Key: DERBY-1016 > URL: https://issues.apache.org/jira/browse/DERBY-1016 > Project: Derby > Issue Type: Bug > Components: JDBC > Affects Versions: 10.1.3.1, 10.2.1.6 > Reporter: Kathey Marsden > Assignee: Tiago R. Espinha > Attachments: DERBY-1016.patch, DERBY-1016_Patch_1.diff, ReproDerby1016.java, utilXid.java > > > javax.transaction.xa.forget (Xid) raises XAER_NOTA exception instead of XA_PROTO on a prepared transaction > I posted a question to derby-dev about this and heard no response so am assuming it is indeed a bug. > in the XA+ > specification, it seems like xa_forget should only be valid for a > heuristically completed transaction, so should be XAER_PROTO > and not XAER_NOTA. > In xaStateTran.sql we have this case: > -- get back into prepared state > xa_start xa_noflags 50; > insert into xastate values(2); > xa_end xa_success 50; > xa_prepare 50; > select * from global_xactTable where gxid is not null order by gxid; > -- the following should error XAER_NOTA > xa_forget 50; > The user code I am looking at handles forget like this. They expect > XAER_PROTO in this case. > > try { > xaRes.forget(xidList[i]); > System.out.print("XA-Transaction [" + (i+1) + "] > Forgotten. \n" ); > } catch (XAException XAeForget) { > if ( XAeForget.errorCode == > XAException.XAER_PROTO ) { > System.out.print("XA-Transaction [" + (i+1) > + "] not heuristically completed yet - Rolling Back instead. \n" ); > xaRes.rollback(xidList[i]); > System.out.print("XA-Transaction [" + (i+1) > + "] Rolled Back. \n" ); > } > if ( XAeForget.getMessage() != null ) { > System.out.println("XAException " + > XAeForget.getMessage() ); > -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.