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

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

The subclasses of EXTDTAReaderInputStream implement both read() and 
read(byte[],int,int). Those methods have become rather complex now, since they 
handle both switching of buffers and the new status byte. To reduce the 
complexity of these classes, do you think it would make sense to define read() 
in terms of read(byte[],int,int) so that buffer switching and reading the 
status byte only need to be implemented once per class?

> Client driver can insert and commit partial data when a LOB stream throws 
> IOException or does not match the specified length
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-2017
>                 URL: https://issues.apache.org/jira/browse/DERBY-2017
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.2.1.6
>            Reporter: Knut Anders Hatlen
>            Assignee: Kristian Waagan
>         Attachments: derby-2017-2a-regression_test.diff, 
> derby-2017-2b-regression-test.diff, derby-2017-3a-fix.diff, 
> derby-2017-3a-fix.stat, derby-2017-stream_status_preview.diff, 
> derby2017_try1.diff, Derby_2017_v1.diff, Derby_2017_v1.stat, 
> StreamErrRepro.java
>
>
> When a LOB stream throws an exception or does not match the specified length, 
> the client driver does not raise an exception until it has finished executing 
> the statement. Therefore, the statement will be executed (and possibly 
> committed) on the server even though the client reports that the statement 
> failed.

-- 
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