Suddenly for no discernable reason I'm getting this error (stacktrace below) while using getString() to read from a clob, the contents of which is only about 60K in length. I also have a testing interface which lets me type in raw SQL, and which also uses getString() to read the columns from the result set, and issuing the same query that producesd this error works fine from there.

The only thing I can think of that's different when it fails is that it is running in a background thread which waits for entries to appear in a work queue and then processes them. I can't see what difference that would make, though...

The Derby version is 10.8.1.2 (1095077) running on Java 1.7.0_03-b05.

Can anyone tell me why this might be happening please?

-------
java.sql.SQLException: An IOException was thrown when reading a 'java.lang.String' from an InputStream. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.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.EmbedResultSet.noStateChangeException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
        at utils.Results.getString(Results.java:169)
        at utils.TestDetails.<init>(TestDetails.java:202)
        at utils.TestServer.run(TestServer.java:95)
Caused by: java.sql.SQLException: An IOException was thrown when reading a 'java.lang.String' from an InputStream. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
        ... 10 more
Caused by: java.sql.SQLException: Java exception: 'ERROR 40XD0: Container has been closed.: java.io.IOException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.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)
        ... 7 more
Caused by: java.io.IOException: ERROR 40XD0: Container has been closed.
at org.apache.derby.impl.store.raw.data.OverflowInputStream.fillByteHolder(Unknown Source) at org.apache.derby.impl.store.raw.data.BufferedByteHolderInputStream.read(Unknown Source)
        at java.io.DataInputStream.read(Unknown Source)
        at org.apache.derby.iapi.types.SQLClob.readExternal(Unknown Source)
        at org.apache.derby.iapi.types.SQLChar.getString(Unknown Source)
        ... 5 more
Caused by: ERROR 40XD0: Container has been closed.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseContainerHandle.checkOpen(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(Unknown Source)
        ... 10 more
java.sql.SQLException: An IOException was thrown when reading a 'java.lang.String' from an InputStream. at org.apache.derby.impl.jdbc.SQLExceptionFactory40.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.EmbedResultSet.noStateChangeException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedResultSet.getString(Unknown Source)
        at utils.Results.getString(Results.java:169)
        at utils.TestDetails.<init>(TestDetails.java:183)
        at utils.TestServer.run(TestServer.java:95)
Caused by: java.sql.SQLException: An IOException was thrown when reading a 'java.lang.String' from an InputStream. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
        ... 10 more
Caused by: java.sql.SQLException: Java exception: 'ERROR 40XD0: Container has been closed.: java.io.IOException'. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.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)
        ... 7 more
Caused by: java.io.IOException: ERROR 40XD0: Container has been closed.
at org.apache.derby.impl.store.raw.data.OverflowInputStream.fillByteHolder(Unknown Source) at org.apache.derby.impl.store.raw.data.BufferedByteHolderInputStream.read(Unknown Source)
        at java.io.DataInputStream.read(Unknown Source)
        at org.apache.derby.iapi.types.SQLClob.readExternal(Unknown Source)
        at org.apache.derby.iapi.types.SQLChar.getString(Unknown Source)
        ... 5 more
Caused by: ERROR 40XD0: Container has been closed.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseContainerHandle.checkOpen(Unknown Source) at org.apache.derby.impl.store.raw.data.BaseContainerHandle.getPage(Unknown Source)
        ... 10 more

--
John English

Reply via email to