[ 
https://issues.apache.org/jira/browse/DERBY-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12475065
 ] 

Daniel John Debrunner commented on DERBY-2220:
----------------------------------------------

On the test changes in the patch:

J2EEDataSource already has methods to get XADataSources, so I don't think you 
need to add JDBCXADataSource.

This comment in the test concerns me:

+        // We need to do such a special setup for the test
+        // because if the locks are not released when the
+        // XAConnection object is closed the database
+        // can not be cleaned by CleanDatabaseSetup (throught defaultSuite)
+        // but DropDatabaseSetup (throught singelUseDatabaseDecorator)
+        // have to be used instead. This will ensures that the database
+        // will be cleaned after the test

Isn't this bug trying to address those issue? Having this style of cleanup will 
surely lead to bugs being hidden?
A safer approach would seem to be use the standard database and address/report 
issues as they appear.

> Uncommitted transactions executed throught XAResource will held locks after 
> the application terminates (or crashes during the transaction).
> -------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2220
>                 URL: https://issues.apache.org/jira/browse/DERBY-2220
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.3.0.0
>         Environment: Solaris Nevada build 49, Sun's JDK1.6
>            Reporter: Julius Stroffek
>         Assigned To: Julius Stroffek
>         Attachments: d2220_beta.diff, d2220_beta2.diff, d2220_try1.diff, 
> d2220_try1.stat, d2220_try2.diff, d2220_try2.stat, XATranTest.java, xxx.sql
>
>
> Using this piece of code derby will not release a table lock of 'dummy' table.
>             String query = "insert into dummy (field1) values ('" + 
> Integer.toString(value) + "')";
>             XAConnection xaConnection = 
> createXAConnection("jdbc:derby://localhost:1527/TestDB", "", "");
>             XAResource xaResource = xaConnection.getXAResource();
>             conn = xaConnection.getConnection();
>             
>             Xid xid = createXid(value);        
>             xaResource.setTransactionTimeout(10);
>             xaResource.start(xid, XAResource.TMNOFLAGS);
>             
>             Statement statement = conn.createStatement();
>             statement.execute(query);        
>             
>             // terminate the client application
>             // this will not release any locks
>             System.exit(0);

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to