[ https://issues.apache.org/jira/browse/DERBY-5489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13151748#comment-13151748 ] Dag H. Wanvik commented on DERBY-5489: -------------------------------------- I found I could reproduce the error in a simplified repro (without Spring dependencies) using the uploaded Repro.diff (diff against BLOBTest.java in the regressions suite). > 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, repro.diff > > > 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