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

Mamta A. Satoor commented on DERBY-6237:
----------------------------------------

I tried on 10.2 and 10.3 clients updating varchar column with a stream and did 
not run into stream has already been read exception for it so  looks like we 
follow a different code path for varchar vs CLOB when working with streams. I 
will incorporate update of varchars with streams in my test case,
                
> PreparedStatement.execute() fails starting 10.2 when multiple rows are 
> updated and PreparedStatement.setCharacterStream(int, Reader, int) is used
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-6237
>                 URL: https://issues.apache.org/jira/browse/DERBY-6237
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.2.2.1, 10.3.3.1, 10.4.2.1
>            Reporter: Mamta A. Satoor
>
> PreparedStatement.execute() worked on 10.1(both embedded and network server) 
> when multiple rows are updated and PreparedStatement.setCharacterStream(int, 
> Reader, int) is used. In 10.2, the embedded case stopped working for 
> multi-row update using a prepared statement which used 
> PreparedStatement.setCharacterStream(int, Reader, int) with exception
> java.io.EOFException: Stream has already been read and end-of-file reached 
> and cannot be re-used.
>       at 
> org.apache.derby.iapi.types.ReaderToUTF8Stream.read(ReaderToUTF8Stream.java:185)
>       at 
> org.apache.derby.impl.store.raw.data.MemByteHolder.write(MemByteHolder.java:146)
>       at 
> org.apache.derby.impl.store.raw.data.RememberBytesInputStream.fillBuf(RememberBytesInputStream.java:135)
>       at 
> org.apache.derby.impl.store.raw.data.StoredPage.logColumn(StoredPage.java:6167)
>       at 
> org.apache.derby.impl.store.raw.data.StoredPage.logRow(StoredPage.java:3971)
>       at 
> org.apache.derby.impl.store.raw.data.UpdateOperation.writeOptionalDataToBuffer(UpdateOperation.java:255)
>       at 
> org.apache.derby.impl.store.raw.data.UpdateOperation.<init>(UpdateOperation.java:106)
>       at 
> org.apache.derby.impl.store.raw.data.LoggableActions.actionUpdate(LoggableActions.java:80)
>       at 
> org.apache.derby.impl.store.raw.data.StoredPage.doUpdateAtSlot(StoredPage.java:8549)
>       at 
> org.apache.derby.impl.store.raw.data.BasePage.updateAtSlot(BasePage.java:1178)
>       at 
> org.apache.derby.impl.store.access.conglomerate.GenericConglomerateController.replace(GenericConglomerateController.java:479)
>       at 
> org.apache.derby.impl.sql.execute.RowChangerImpl.updateRow(RowChangerImpl.java:523)
>       at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:579)
>       at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(UpdateResultSet.java:273)
>       at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:358)
>       at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1182)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1635)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(EmbedPreparedStatement.java:1304)
>       at 
> org.apache.derbyTesting.functionTests.tests.lang.MamtaJDBC.main(MamtaJDBC.java:91)
> In 10.3 and 10.4, both the embedded and network server cases are broken for 
> multi-row update using a prepared statement which used 
> PreparedStatement.setCharacterStream(int, Reader, int).I still need to test 
> 10.5 and higher. I will also add junit test cases for each of these releases 
> on incremental basis.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to