Jason Ward wrote:
Thanks Bryan, I should have included the info from the derby.log.
Here's a small snippet of the ~1K lines from the log:
2009-09-17 14:58:48.873 GMT Thread[DRDAConnThread_19,5,derby.daemons]
(XID = 5212534), (SESSIONID = 21), (DATABASE = C:/temp/testDB),
(DRDAID = NF000001.H0EE-4195946224626394775{15}), Cleanup action starting
2009-09-17 14:58:48.873 GMT Thread[DRDAConnThread_19,5,derby.daemons]
(XID = 5212534), (SESSIONID = 21), (DATABASE = C:/temp/testDB),
(DRDAID = NF000001.H0EE-4195946224626394775{15}), Failed Statement is:
<clipped for proprietary reasons... I can modify and disclose of
required, but the SQL select looks as expected>:end parameter
java.lang.StackOverflowError
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at org.apache.derby.iapi.services.io.LimitInputStream.read(Unknown
Source)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
...
at java.io.PushbackInputStream.read(PushbackInputStream.java:169)
at java.io.FilterInputStream.read(FilterInputStream.java:116)
Cleanup action completed
Additionally.. unchaining the exception is a little more complicated
with Hibernate in the way, but I've gone about doing so... seems it's
the end of the chain tho. (Interrogating the exception with debugger
confirms that there's no next exception, but I'm not sure if that's
only because someone's swallowing it along the line.)
Thanks,
JW
----- SQLException -----
SQLState: XJ001
Error Code: -1
Message: DERBY SQL error: SQLCODE: -1, SQLSTATE: XJ001,
SQLERRMC: java.lang.StackOverflowErrorXJ001.U
Any thoughts on where I should focus my attention? I can't be the only
one using Derby and scrolling on large result-sets can I?
Hi Jason,
Just a few control questions, as Derby doesn't use PushbackInputStream
much internally:
1) Which Derby version are you using?
2a) Does the failing result set contain any CLOB columns?
2b) Are you accessing an upgraded database?
Regards,
--
Kristian
Bryan Pendleton wrote:
Caused by: org.apache.derby.client.am.SqlException: DERBY SQL error:
SQLCODE: -1, SQLSTATE: XJ001, SQLERRMC:
java.lang.StackOverflowErrorXJ001.U
at org.apache.derby.client.am.ResultSet.completeSqlca(Unknown
Source)
Is there a more detailed exception trace in your derby.log file?
I'd expect to see a stack trace with hundreds, perhaps thousands, of
stack frames in it, which is what I usually see in the cases where I've
had stack overflow errors. Usually such a stack trace makes it pretty
easy to see where there is code that is re-entering itself (possibly
indirectly), and causing the stack overflow.
If you can't find a more detailed exception trace in the derby.log
file, here's another thing you can try to do to get more information:
http://wiki.apache.org/db-derby/UnwindExceptionChain
thanks,
bryan