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

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

The statements in testBlobSize()/testClobSize() are not closed.

I think if you made these methods non-static and did not pass in the 
connection, then it becomes clearer for readers that these methods are using 
the default connection, otherwise one has to assume that they are not.

> When table contains large LOB values (> ~32K) trigger execution fails for 
> that row with ERROR XCL30: An IOException was thrown when reading a 'BLOB' 
> -----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3238
>                 URL: https://issues.apache.org/jira/browse/DERBY-3238
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.1.3.1, 10.2.2.0, 10.3.1.4, 10.3.2.1, 10.4.0.0
>            Reporter: Stan Bradbury
>            Assignee: Kathey Marsden
>         Attachments: blob_insert2.java, derby-3238_diff.txt, 
> derby-3238_diffv2.txt, derby-3238_diffv3.txt
>
>
> See attached test case.  
> At execution/run-time a trigger that handles a row that contains a large LOB 
> value will fail with the following error and stack trace:
>  = = =
> Testing blob of size=1024
>  . . Now executing update to fire the trigger
> PASSED
> Testing blob of size=16384
>  . . Now executing update to fire the trigger
> PASSED
> Testing blob of size=32658
>  . . Now executing update to fire the trigger
> PASSED
> Testing blob of size=32659
>  . . Now executing update to fire the trigger
> Error! java.sql.SQLException: An IOException was thrown when reading a 'BLOB' 
> from an InputStream.
> java.sql.SQLException: An IOException was thrown when reading a 'BLOB' from 
> an InputStream.
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
>         at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
>         at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>         at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown 
> Source)
>         at blob_insert2.testBlob(blob_insert2.java:102)
>         at blob_insert2.main(blob_insert2.java:55)
> Caused by: java.sql.SQLException: Java exception: ': java.io.EOFException'.
>         at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
>         at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown 
> Source)
>         at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source)
>         at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>         ... 9 more
> Caused by: java.io.EOFException
>         at org.apache.derby.iapi.types.SQLBinary.readBinaryLength(Unknown 
> Source)
>         at org.apache.derby.iapi.types.SQLBinary.readExternal(Unknown Source)
>         at org.apache.derby.iapi.types.SQLBinary.getValue(Unknown Source)
>         at org.apache.derby.iapi.types.SQLBinary.loadStream(Unknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.objectifyStream(Unknown 
> Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(Unknown 
> Source)
>         at org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source)
>         at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>         ... 5 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to