[ http://issues.apache.org/jira/browse/DERBY-562?page=all ] Sunitha Kambhampati closed DERBY-562: -------------------------------------
Fix was verified and bug resolved, so closing the bug. I think it would be good to add information about stream length when using the stream api's to the http://db.apache.org/derby/papers/JDBCImplementation.html. I'll address these clarifications to this paper along with some changes that I am working on for DERBY-500. > 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 > Components: JDBC > Versions: 10.1.1.0, 10.0.2.0, 10.0.2.1, 10.2.0.0, 10.1.2.0, 10.1.1.1, > 10.0.2.2 > Environment: All > Reporter: Holger Rehn > Assignee: Sunitha Kambhampati > Fix For: 10.2.0.0, 10.1.2.0, 10.1.1.2 > Attachments: Derby562.diff.txt, Derby562.stat.txt > > 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
