[ http://issues.apache.org/jira/browse/DERBY-2017?page=all ]

Knut Anders Hatlen updated DERBY-2017:
--------------------------------------

    Attachment: StreamErrRepro.java

Attached a repro which shows the problem when using 
PreparedStatement.setCharacterStream() with a stream that is longer than the 
specified length.

The embedded driver aborts the query and throws "java.sql.SQLException: An 
IOException was thrown when reading a 'java.sql.String' from an InputStream."

The client driver completes the query (inserts a row) and throws 
"java.sql.SQLException: Network protocol error: the specified size of the 
InputStream, parameter #1, is less than the actual InputStream length."

The client driver should abort the the query and not insert the row.

> 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: http://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
>         Attachments: 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.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to