[ http://issues.apache.org/jira/browse/DERBY-1036?page=all ]
Knut Anders Hatlen resolved DERBY-1036:
---------------------------------------
Fix Version: 10.2.0.0
Resolution: Fixed
Dag's patch for DERBY-1183 and this issue committed into trunk with revision
416661.
> Embedded and client differ with regard to Statement.setCursor Name. client
> will disallow duplicate cursor names. Embedded will allow it.
> -----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-1036
> URL: http://issues.apache.org/jira/browse/DERBY-1036
> Project: Derby
> Type: Sub-task
> Components: Network Client, JDBC
> Versions: 10.1.3.0, 10.1.2.3, 10.2.0.0
> Reporter: Kathey Marsden
> Assignee: Dag H. Wanvik
> Priority: Minor
> Fix For: 10.2.0.0
>
> In looking at the checkDataSource test for DERBY-435, I hit an issue that the
> test fails with an exception for duplicate cursor name because it sets the
> cursor name for two statements to the same thing.
> Embedded seems to allow this, but it seems to me that client might be right
> here. How could embedded differentiate the two for positioned updates?
> There is risk to existing applications if embedded is changed to throw the
> error that should be considered if we decide we need to change the embedded
> behaviour.
> Below are some details from checkDataSource where I hit this. I will change
> the names for now as it does not seem relevant to what is being tested.
> PreparedStatement psruState = createFloatStatementForStateChecking(cs1,
> "select i from ru where i = ?");
> CallableStatement csruState = createFloatCallForStateChecking(cs1,
> "CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?,?)");
> Both of these methods set the cursor name to the same thing:
> s.setCursorName("StokeNewington");
> For embedded it succeeds for client it throws the exception.
> java.sql.SQLException: Duplicate cursor names are not allowed.
> at org.apache.derby.client.am.SqlException.getSQLException(Unknown
> Source)
> at org.apache.derby.client.am.Statement.setCursorName(Unknown Source)
> at
> org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.createFloatStatementForStateChecking(Unknown
> Source)
> at
> org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.runTest(Unknown
> Source)
> at
> org.apache.derbyTesting.functionTests.tests.jdbcapi.checkDataSource.main(Unknown
> Source)
--
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