[ 
http://issues.apache.org/jira/browse/DERBY-562?page=comments#action_12324460 ] 

Daniel John Debrunner commented on DERBY-562:
---------------------------------------------

The comment actually says 'JDBC 3.0 (from tutorial book)', not from the spec.
Meaning
[TUTORIAL3] - JDBC API Tutorial and Reference, Third Edition. ISBN 0321173848 
http://java.sun.com/developer/Books/jdbc/Fisher/index.html
(see http://db.apache.org/derby/papers/JDBCImplementation.html)

Chapter 25 - Page 664 - setBinaryStream of PreparedStatement

"length - ... Note that if the stream contains more or less bytes than are 
specified in length, an exception is thrown"

identical comments for setAsciiStream and setCharacterStream methods.

I'll provide an update for 
http://db.apache.org/derby/papers/JDBCImplementation.html



> Derby incorrectly throws Exception when streaming to BLOB field
> ---------------------------------------------------------------
>
>          Key: DERBY-562
>          URL: http://issues.apache.org/jira/browse/DERBY-562
>      Project: Derby
>         Type: Bug
>     Versions: 10.1.1.0
>     Reporter: Holger Rehn

>
> Derby incorrectly throws an Exception when streaming to a BLOB in case the 
> used InputStream actually could provide more data than I want to write to the 
> BLOB field.
>    PreparedStatement statement = connection.prepareStatement( "insert into 
> FOO(ID,DATA) values(?, ?)" );
>    statement.setLong( 1, someValue );
>    statement.setBinaryStream( 2, someInputStream, amountOfData ); // 
> amountOfData < amount of data readable from someInputStream
>    statement.executeUpdate();
> executeUpdate() throws an SQLException with detail message: "Input stream 
> held less data than requested length.: java.io.IOException"
> In my case this was first caused by writing an internal buffer (byte[]) to 
> the data base through a ByteArrayInputStream while not limiting the 
> ByteArrayInputStream to the useful data within the buffer but setting 
> amountOfData to the number of useful bytes. So the 2 problems are:
> 1. the error text is definitly incorrect since I provide more data than 
> neccessary, not less
> 2. in my opinion this shouldn't throw an exception at all (I checked against 
> 4 other DBMS, all of them worked as intended)

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