[
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.