[ http://issues.apache.org/jira/browse/DERBY-1497?page=all ]
Andreas Korneliussen reopened DERBY-1497:
-----------------------------------------
Will update the fix so that a constructor of DisconnectException which takes
Throwable is used.
After applying the new fix, the stack trace for the exception contains the
following information when running the BlobOutOfMem repro in DERBY-550 on Java
6 (Mustang):
java.sql.SQLException: Attempt to fully materialize lob data that is too large
for the JVM. The connection has been terminated.
at
org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(SQLExceptionFactory40.java:94)
at
org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:344)
at org.apache.derby.client.am.ResultSet.next(ResultSet.java:278)
at derbytest.BlobOutOfMem.main(BlobOutOfMem.java:104)
Caused by: org.apache.derby.client.am.DisconnectException: Attempt to fully
materialize lob data that is too large for the JVM. The connection has been
terminated.
at
org.apache.derby.client.net.NetStatementReply.copyEXTDTA(NetStatementReply.java:1486)
at
org.apache.derby.client.net.NetResultSetReply.parseCNTQRYreply(NetResultSetReply.java:139)
at
org.apache.derby.client.net.NetResultSetReply.readFetch(NetResultSetReply.java:41)
at
org.apache.derby.client.net.ResultSetReply.readFetch(ResultSetReply.java:40)
at
org.apache.derby.client.net.NetResultSet.readFetch_(NetResultSet.java:205)
at org.apache.derby.client.am.ResultSet.flowFetch(ResultSet.java:4160)
at
org.apache.derby.client.net.NetCursor.getMoreData_(NetCursor.java:1182)
at org.apache.derby.client.am.Cursor.stepNext(Cursor.java:176)
at org.apache.derby.client.am.Cursor.next(Cursor.java:195)
at org.apache.derby.client.am.ResultSet.nextX(ResultSet.java:299)
at org.apache.derby.client.am.ResultSet.next(ResultSet.java:269)
... 1 more
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
at org.apache.derby.client.net.Reply.getData(Reply.java:786)
at
org.apache.derby.client.net.NetStatementReply.copyEXTDTA(NetStatementReply.java:1478)
... 11 more
> assert failure in MessageUtil, because exception thrown with too many
> parameters when handling OutOfMemoryError
> ---------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-1497
> URL: http://issues.apache.org/jira/browse/DERBY-1497
> Project: Derby
> Type: Sub-task
> Components: Network Client
> Versions: 10.2.0.0
> Reporter: Andreas Korneliussen
> Assignee: Andreas Korneliussen
> Priority: Trivial
> Fix For: 10.2.0.0
> Attachments: DERBY-1497.diff
>
> If the VM throws a OutOfMemoryException, which is caught in:
> NetStatementReply.copyEXTDTA:
> protected void copyEXTDTA(NetCursor netCursor) throws DisconnectException
> {
> try {
> parseLengthAndMatchCodePoint(CodePoint.EXTDTA);
> byte[] data = null;
> if (longValueForDecryption_ == null) {
> data = (getData(null)).toByteArray();
> } else {
> data = longValueForDecryption_;
> dssLength_ = 0;
> longValueForDecryption_ = null;
> }
> netCursor.extdtaData_.add(data);
> } catch (java.lang.OutOfMemoryError e) { <--- outofmemory
> agent_.accumulateChainBreakingReadExceptionAndThrow(new
> DisconnectException(agent_,
> new ClientMessageId(SQLState.NET_LOB_DATA_TOO_LARGE_FOR_JVM),
> e)); <----- message does not take parameters, causing assert
> failure
> }
> }
> Instead of getting the message: java.sql.SQLException: Attempt to fully
> materialize lob data that is too large for the JVM. The connection has been
> terminated.
> I am getting an assert:
> Exception in thread "main"
> org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED Number of
> parameters expected for message id 58009.C.6 (0) does not match number of
> arguments received (1)
> at
> org.apache.derby.shared.common.sanity.SanityManager.ASSERT(SanityManager.java:119)
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira