[ 
https://issues.apache.org/jira/browse/DERBY-4060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678268#action_12678268
 ] 

Knut Anders Hatlen commented on DERBY-4060:
-------------------------------------------

Should we also update the javadoc comments in EmbedBlob and EmbedClob (they 
still say that we throw SQLException if pos+length is greater than the number 
of bytes/characters)?

Same goes for the error message (XJ087.S) which says "Sum of position('{0}') 
and length('{1}') is greater than the size of the LOB."

> Blob.getBinaryStream(long,long) is off by one for the pos+len check
> -------------------------------------------------------------------
>
>                 Key: DERBY-4060
>                 URL: https://issues.apache.org/jira/browse/DERBY-4060
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.3.1, 10.4.2.0, 10.5.0.0
>            Reporter: Trejkaz
>            Assignee: Kristian Waagan
>             Fix For: 10.5.0.0
>
>         Attachments: derby-4060-1a-sub_stream_fix.diff, 
> derby-4060-1a-sub_stream_fix.stat, derby-4060-1b-sub_stream_fix.diff
>
>
> If you have a BLOB of length 20, and call blob.getBinaryStream(11,10), it 
> will give you an error:
>     java.sql.SQLException: Sum of position('11') and length('10') is greater 
> than the size of the LOB.
> This is following word for word an error in the JDBC Javadoc:
>         SQLException - if pos is less than 1 or if pos is greater than the 
> number of bytes in the Blob or if pos + length is greater than the number of 
> bytes in the Blob
> So it's checking 11 + 10 > 20, but it should check 11 + 10 > 21    (pos + len 
> > blob.length() + 1) to allow reading the last byte.
> The Javadoc for Clob.getCharacterStream(long,long) has similar wording so it 
> may have the same issue.
> Likewise, the client driver may have the same issue -- I haven't yet checked.

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

Reply via email to