[
https://issues.apache.org/jira/browse/DERBY-5489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13141336#comment-13141336
]
Pawel Fronczak commented on DERBY-5489:
---------------------------------------
The problem with changing the code responsible for the data retrieval is that
it is part of the SpringFramework library. Since it seems that it is opposing
the JDBC API, I shall file a bug report for that.
Fortunately, there is a simple workaround - instead of using the queryForList()
method, one could use the query() method and supply custom RowMapper (or
RowCallbackHandler) which will read the BLOB column only once.
Nevertheless, an exception from getBytes explaining what has happened would be
very helpful. Right now it is not very easy to track down the cause of the
problem.
> getBinary() returns incorrect data after getObject() call on BLOB column
> ------------------------------------------------------------------------
>
> Key: DERBY-5489
> URL: https://issues.apache.org/jira/browse/DERBY-5489
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.7.1.1, 10.8.2.2
> Reporter: Pawel Fronczak
> Attachments: SelectBlobBug.java
>
>
> When ResultSet.getObject(int) is called on a BLOB column, the correct
> EmbedBlob object is returned. But if afterwards the ResultSet.getBytes(int)
> is called on the same row, the returned array contains invalid data - it is
> offset by 3 bytes and its size is incorrect.
> The problem only occurs when the stored BLOB is large enough to be internally
> represented by stream and not by array of bytes (at least ~32KiB).
> It seems that the getObject method shifts the stream position and therefore
> the getBytes method starts to read the data after the third byte, thus
> incorrectly calculating its length.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira