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