db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3583) Derby should throw a better error message if a BLOB/CLOB column is accessed more than once
Date Tue, 01 Apr 2008 20:32:24 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584289#action_12584289

Kristian Waagan commented on DERBY-3583:

As I noted in DERBY-3571, I believe that patch should make it a lot easier to support either

When it comes to which option to choose, I'm not sure.
These are some of my thoughts (in random order):
 1) Allowing only a single call forces more portable code.
 2) Allowing multiple calls makes the client driver consistent with the embedded driver.
 3) Allowing multiple calls is more convenient.
 4) Allowing multiple calls might have some side-effects if two LOB objects are used concurrently

Seems like I'm more in favor of allowing multiple calls, so I guess I would go for that if
it works technically.

Regarding the comment about the other get methods (String, Bytes, XStream), I don't think
they are disallowed because the locator is freed. That is just how it is implemented, and
it's in line with the spec to close the streams. 
I think it might be just as good to let the LOB tracker release the locators. The only case
where the locators cannot be released implicitly, is when a Blob or Clob object is published
to the user.
As soon as DERBY-3571 is resolved, I can post a patch demonstrating the approach.

> Derby should throw a better error message if a BLOB/CLOB column is accessed more than
> ------------------------------------------------------------------------------------------
>                 Key: DERBY-3583
>                 URL: https://issues.apache.org/jira/browse/DERBY-3583
>             Project: Derby
>          Issue Type: Improvement
>            Reporter: Kathey Marsden
>            Assignee: Kathey Marsden
>            Priority: Minor
> With the DERBY-2892 fix  revision 642974, users can no longer access a BLOB/CLOB column
more than once for each row.  Currently the error message is
> XJ217 - You cannot invoke other java.sql.Clob/java.sql.Blob methods after calling the
free() method or after the Blob/Clob's transaction has been committed or rolled back.
> I don't know that that makes sense given the user called getString()
> For getCharacterStream()/getBinaryStream() there is no error on the call, just an IOException
on the read.
> We should throw a clearer error message, that the user is not allowed to make multiple
getXXX calls on a BLOB/CLOB column for each row.

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

View raw message