Peterson, John wrote:

Would you agree that closing the ResultSet when the next() method returns false is an undesirable side effect which conflicts with the expected behavior, or have I overlooked something?

JDBC 3.0 & early mandated that the result set was closed when all of the rows have been retrieved, that's the behaviour you are seeing. JDBC 4 changed the rules for statement completion (in an incompatible way) and Derby has not reconciled the behaviour yet. The same code supports all the JDBC versions (with additional methods/classes added for newer versions) and traditionally the same behaviour was required across JDBC versions (e.g. JDBC 3 was a super-set of JDBC 2). No one has addressed requiring different behaviour for the same method across different JDBC versions. Changing the behaviour for JDBC 4 will also cause backwards compatibility issues for applications that change to Java 6.

Dan.



Reply via email to