[ http://issues.apache.org/jira/browse/DERBY-1183?page=all ] Knut Anders Hatlen resolved DERBY-1183: ---------------------------------------
Resolution: Fixed Dag, I made two changes to your last patch before committing. 1) A couple of println statements had been added to SectionManager.java (all commented out). I removed those. 2) One of the work-arounds for DERBY-1036 in checkDataSource.java was only partially removed: Your patch: - //DERBY-1036 - need a new name - //s.setCursorName("StokeNewington"); + s.setCursorName("StokeNewington"); s.setCursorName("districtInLondon"); Committed change: - //DERBY-1036 - need a new name - //s.setCursorName("StokeNewington"); - s.setCursorName("districtInLondon"); + s.setCursorName("StokeNewington"); The patch was committed into trunk with revision 416661. > Client java.sql.ResultSet.getCursorName() does not return the correct cursor > name for Statements after the first execution > -------------------------------------------------------------------------------------------------------------------------- > > Key: DERBY-1183 > URL: http://issues.apache.org/jira/browse/DERBY-1183 > Project: Derby > Type: Bug > Components: JDBC > Versions: 10.2.0.0 > Reporter: Kathey Marsden > Assignee: Dag H. Wanvik > Fix For: 10.2.0.0 > Attachments: derby-1183-2.diff, derby-1183-2.stat, derby-1183.diff, > derby-1183.stat > > For client, if the cursor name is set with java.sql.Statement.setCursorName() > the name set by the user only applies to the first execution. Subsequent > executions use the default cursor name. To reproduce run the progam below as > follows: > D>java -Dframework=DerbyNetClient GetCursorName > 10.2.0.0 alpha > Apache Derby > Apache Derby Network Client JDBC Driver > rs.getCursorName():MyCursor > rs.getCursorName():SQL_CURLH000C2 > With embedded it is ok: > D>java GetCursorName > 10.2.0.0 alpha > Apache Derby > Apache Derby Embedded JDBC Driver > rs.getCursorName():MyCursor > rs.getCursorName():MyCursor > import java.sql.Connection; > import java.sql.DatabaseMetaData; > import java.sql.ResultSet; > import java.sql.SQLException; > import java.sql.Statement; > import org.apache.derbyTesting.functionTests.util.TestUtil; > class GetCursorName > { > > public static void main (String args [])throws Exception > { > testGetCursorName(); > } > > public static void testGetCursorName() throws SQLException > { > > Connection conn = > TestUtil.getConnection("wombat","create=true"); > Statement stmt = null; > ResultSet rs = null; > DatabaseMetaData md = conn.getMetaData() ; > System.out.println(md.getDatabaseProductVersion()); > System.out.println(md.getDatabaseProductName()); > System.out.println(md.getDriverName()); > > stmt = conn.createStatement(); > // Setting the cursor name works for one execution ok. > stmt.setCursorName("MyCursor"); > rs = stmt.executeQuery("select count(*) from sys.systables"); > System.out.println("rs.getCursorName():" + rs.getCursorName()); > rs.close(); > //Executing another query seems to clears the cursor name. > // getCursorName() will print the default cursor name SQLXXX. > rs = stmt.executeQuery("select count(*) from sys.systables"); > System.out.println("rs.getCursorName():" + rs.getCursorName()); > rs.close(); > stmt.close(); > conn.close(); > } > > } > I noticed this bug when coverting the checkDataSource test for client. > I will change that test to set the cursor name for each execution for client. -- 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