[ http://issues.apache.org/jira/browse/DERBY-213?page=all ]
Philip Wilder updated DERBY-213: -------------------------------- Component: Network Client (was: Network Server) Description: Network Server closes the result set if ResultSet.next() is called after the last row of the result set. The test code below throws the following exception. SQLState: null Severity: -99999 Message: Invalid operation: result set closed com.ibm.db2.jcc.am.SqlException: Invalid operation: result set closed at com.ibm.db2.jcc.am.ResultSet.checkForClosedResultSet(ResultSet.j ava:3419) at com.ibm.db2.jcc.am.ResultSet.nextX(ResultSet.java:290) at com.ibm.db2.jcc.am.ResultSet.next(ResultSet.java:277) at AfterLast.test(AfterLast.java:75) at AfterLast.main(AfterLast.java:32) stmt.executeUpdate("CREATE TABLE TAB ( I INT)"); stmt.executeUpdate("INSERT INTO TAB VALUES(1)"); stmt.executeUpdate("INSERT INTO TAB VALUES(2)"); String sql ="SELECT * from tab"; ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); System.out.println(sql); while (rs.next()) System.out.println(rs.getInt(1)); try { System.out.println("one more next"); rs.next(); } catch (Exception e) { System.out.println("FAIL: next should return false not throw exception"); e.printStackTrace(); } was: Network Server closes the result set if ResultSet.next() is called after the last row of the result set. The test code below throws the following exception. SQLState: null Severity: -99999 Message: Invalid operation: result set closed com.ibm.db2.jcc.am.SqlException: Invalid operation: result set closed at com.ibm.db2.jcc.am.ResultSet.checkForClosedResultSet(ResultSet.j ava:3419) at com.ibm.db2.jcc.am.ResultSet.nextX(ResultSet.java:290) at com.ibm.db2.jcc.am.ResultSet.next(ResultSet.java:277) at AfterLast.test(AfterLast.java:75) at AfterLast.main(AfterLast.java:32) stmt.executeUpdate("CREATE TABLE TAB ( I INT)"); stmt.executeUpdate("INSERT INTO TAB VALUES(1)"); stmt.executeUpdate("INSERT INTO TAB VALUES(2)"); String sql ="SELECT * from tab"; ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); System.out.println(sql); while (rs.next()) System.out.println(rs.getInt(1)); try { System.out.println("one more next"); rs.next(); } catch (Exception e) { System.out.println("FAIL: next should return false not throw exception"); e.printStackTrace(); } Environment: > ResultSet.next() after last row of FORWARD_ONLY cursor throws an SQL > Exception with Network Server > -------------------------------------------------------------------------------------------------- > > Key: DERBY-213 > URL: http://issues.apache.org/jira/browse/DERBY-213 > Project: Derby > Type: Bug > Components: Network Client > Versions: 10.1.0.0 > Reporter: Kathey Marsden > Assignee: Philip Wilder > Attachments: Client.java, Create.java, DERBY-213_6_13_2005.txt, > DERBY-213_6_9_2005.txt, DERBY-213_irc_6_3_2005, DERBY-213_irc_6_7_2005.txt, > DERBY-213_irc_6_8_2005, IRCTranscript_June2_2005.txt, ResultSet Outline.pdf, > Server.java, resultset.java > > Network Server closes the result set if ResultSet.next() is > called after the last row of the result set. The test code > below throws the following exception. > SQLState: null > Severity: -99999 > Message: Invalid operation: result set closed > com.ibm.db2.jcc.am.SqlException: Invalid operation: result set > closed > at > com.ibm.db2.jcc.am.ResultSet.checkForClosedResultSet(ResultSet.j > ava:3419) > at > com.ibm.db2.jcc.am.ResultSet.nextX(ResultSet.java:290) > at > com.ibm.db2.jcc.am.ResultSet.next(ResultSet.java:277) > at AfterLast.test(AfterLast.java:75) > at AfterLast.main(AfterLast.java:32) > stmt.executeUpdate("CREATE TABLE TAB ( I INT)"); > stmt.executeUpdate("INSERT INTO TAB VALUES(1)"); > stmt.executeUpdate("INSERT INTO TAB VALUES(2)"); > String sql ="SELECT * from tab"; > ps = conn.prepareStatement(sql); > ResultSet rs = ps.executeQuery(); > System.out.println(sql); > while (rs.next()) > System.out.println(rs.getInt(1)); > try { > System.out.println("one more next"); > rs.next(); > } > catch (Exception e) > { > System.out.println("FAIL: next should return false not throw > exception"); > e.printStackTrace(); > } -- 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