[ http://issues.apache.org/jira/browse/DERBY-1010?page=comments#action_12368632 ]
Kathey Marsden commented on DERBY-1010: --------------------------------------- Putting on my Reporter hat: This issue is marked resolved and it is but the tests won't come to 10.1 until DERBY-435 is resolved. I will close it at that time. Also wanted to mention that looking at the fix I am not so keen on it now. It checks to see if the statement is closed in addition to checking if it is null before using it. Instead it should have been nulled out in closeResourcesX. > setTransactionIsolation can cause ava.sql.SQLException: Invalid operation: > statement closed in some contexts with xa > -------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1010 > URL: http://issues.apache.org/jira/browse/DERBY-1010 > Project: Derby > Type: Bug > Components: Network Client > Versions: 10.2.0.0, 10.1.3.0, 10.1.2.3 > Reporter: Kathey Marsden > Assignee: Kathey Marsden > Fix For: 10.2.0.0 > > With xa setTransactionIsolation can cause a statement closed exception when > calling > setTransactionIsolation > Client tries to reuse a statement for sending SET CURRENT ISOLATION > statements to the server. There must be some problems with this logic where > it is trying to use a closed statement. Perhaps an overall better strategy > would be to use an EXCSQLSET to send the set commands to the server and then > invoke the embedded JDBC setTransactionIsolation call on the server as Oyvind > did for setQueryTimeout. Using the SET ISOLATION statements on the client > has caused a variety of problems. > // setTransactionIsolation in some contexts used in this test is > // causing java.sql.SQLException: Invalid operation: statement closed > // error on client. These cases are omitted for now where they cause the > // statement closed error > private static boolean causesStmtClosedOnSetTransactionIsolation = > TestUtil.isDerbyNetClientFramework(); > java.sql.SQLException: Invalid operation: statement closed > at > org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:280) > at > org.apache.derby.client.am.Statement.executeUpdate(Statement.java:437) > at > org.apache.derby.client.am.Connection.setTransactionIsolation(Connection.java:911) > at > org.apache.derby.client.am.LogicalConnection.setTransactionIsolation(LogicalConnection.java:184) > at > org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.runTest(checkDataSource.java:404) > at > org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.main(checkDataSource.java:119) > Caused by: org.apache.derby.client.am.SqlException: Invalid operation: > statement closed > at > org.apache.derby.client.am.Statement.checkForClosedStatement(Statement.java:2231) > at > org.apache.derby.client.am.Statement.flowExecute(Statement.java:1737) > at > org.apache.derby.client.am.Statement.executeUpdateX(Statement.java:442) > at > org.apache.derby.client.am.Statement.executeUpdate(Statement.java:428) > ... 4 more > Exception in thread "main" D> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
