db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3238) When table contains large LOB values (> ~32K) trigger execution fails for that row with ERROR XCL30: An IOException was thrown when reading a 'BLOB'
Date Wed, 05 Dec 2007 17:40:43 GMT

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

Kathey Marsden commented on DERBY-3238:
---------------------------------------

The problem on 10.1 looks different than on 10.2,10.3, and 10.4
It fails at a slightly larger blob and error is when we try to objectify the before column
not the after column.

Also in 10.1 clobs work fine without the fix.  I will backport the fix to 10.3 and 10.2 and
investigate the 10.1 problem. Not sure yet if I should file a separate bug for that.

>java blob_insert2
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
PASSED
Testing blob of size=32767
 . . Now executing update to fire the trigger
Error! SQL Exception: An IOException was thrown when reading a 'BLOB' from an InputStream.
ERROR XCL30: An IOException was thrown when reading a 'BLOB' from an InputStream.
        at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:315)
        at org.apache.derby.iapi.types.SQLBinary.getValue(SQLBinary.java:214)
        at org.apache.derby.iapi.types.SQLBinary.loadStream(SQLBinary.java:529)
        at org.apache.derby.impl.sql.execute.DMLWriteResultSet.objectifyStreams(DMLWriteResultSet.java:151)
        at org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(DMLWriteResultSet.java:132)
        at org.apache.derby.impl.sql.execute.UpdateResultSet.collectAffectedRows(UpdateResultSet.java:450)
        at org.apache.derby.impl.sql.execute.UpdateResultSet.open(UpdateResultSet.java:276)
        at org.apache.derby.impl.sql.GenericPreparedStatement.execute(GenericPreparedStatement.java:379)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1123)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:529)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(EmbedStatement.java:165)
        at blob_insert2.testBlob(blob_insert2.java:114)
        at blob_insert2.main(blob_insert2.java:65)
[

> 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,
derby-3238_diffv4.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.


Mime
View raw message