db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3037) Language ResultSet.finish() is called even when the ResultSet is going to be re-used.
Date Mon, 10 Dec 2007 18:43:43 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12550147
] 

Daniel John Debrunner commented on DERBY-3037:
----------------------------------------------

On 2) calling ps.getActivation(lcc, false); and then closing it would be incorrect. That would
create a new activation unrelated to the subsequent execute() call.
The execute() call used here creates a single use activation (as indicated in its javadoc).
A single use activation will be closed once its language ResultSet is closed (not well documented),
and in fact may need cleanup since the activation.close() is called from finishAndRts() and
not the result set closing.

on 3) I think the comments are incorrect at line (1276) which is the justification for this
bug. DERBY-827 changed the code so that the activation re-uses the result set tree, so after
one execution it is not true to say the result set is not needed any more. I think this should
be a close() instead of a finish().

> Language ResultSet.finish() is called even when the ResultSet is going to be re-used.
> -------------------------------------------------------------------------------------
>
>                 Key: DERBY-3037
>                 URL: https://issues.apache.org/jira/browse/DERBY-3037
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.4.0.0
>            Reporter: Daniel John Debrunner
>            Assignee: Mamta A. Satoor
>             Fix For: 10.3.2.2, 10.4.0.0
>
>
> DERBY-827 (correctly) changed the lifetime of the language ResultSet tree to be the lifetime
of the activation, but did not fix up the correct calls to ResultSet.close() and ResultSet.finish().
> A language ResultSet's lifetime should be driven by the activation, so activation.close()
should call finish() on its ResultSet.
> EmbedResultSet should call close on its language ResultSet (theResults field) when the
JDBC ResultSet is closed, it should not be calling finish() on its ResultSet.
> See comments in DERBY-827 for some more details and issues.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message