db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Holger Rehn (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-562) Derby incorrectly throws Exception when streaming to BLOB field
Date Mon, 19 Sep 2005 05:47:55 GMT
    [ http://issues.apache.org/jira/browse/DERBY-562?page=comments#action_12329775 ] 

Holger Rehn commented on DERBY-562:
-----------------------------------

Thank you for looking at the problem!

To answer Rick's question - I checked against Sybase Adaptive Server Anywhere, Sybase Adaptive
Server Enterprise, Microsoft SQL Server and Hypersonic SQL - just because that are the data
base systems I'm currently working with. And all of them read exactly as many bytes as set
by the length argument, ignoring any additional data.

> 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


Mime
View raw message