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