[ http://issues.apache.org/jira/browse/DERBY-213?page=all ]

Philip Wilder updated DERBY-213:
--------------------------------

    Attachment: DERBY-213_6_13_2005.txt

DERBY-213 chat transcript for June 13, 2005 

Background information:
It was the intention of both Kathey and I to release a patch to the development 
community June 10, 2005. However, prior to its release a problematic issue was 
identified.

Summary: 
* Discussed the problem with the latest patch. While the patch solves the 
problem of closing the ResultSet implicitly the fix in question caused the 
ResultSet not to commit properly, as per java.sql.Connection.setAutoCommit() 
java documentation.
* Discussed changes to the tester to help identify this new problem and ways in 
which the tester could be further improved. The tester now checks to see if any 
locks are held by the ResultSet post commit (using the 
org.apache.derby.diag.LockTable class) and the details of this lock.
* Discussed alternatives to the current autocommit model and established the 
Client also needed to execute the autocommit logic inside the nextX() method.
* Determined that the Client was not communicating with the Server as expected 
(commit was not successful) but not the cause.
* Assigned tasks for the next meeting to be held on June 15, 2005. Kathey was 
to investigate the DRDA communications to establish why the auto commit was not 
functioning as expected. Philip was to organize all ResultSet behavior 
according to the JDBC specification in a coherent manner and research Derby 
locking policy for both client and embedded to establish where they differ.

> 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 Server
>     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

Reply via email to