db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Ward <jward....@gmail.com>
Subject Re: StackOverflowError for large Scrollable result sets
Date Fri, 18 Sep 2009 13:37:50 GMT
> 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? 
1 - I just upgraded to 10.5.3 from 10.5.2 and verify it's still an 
issue. From derby.log "Apache Derby Network Server - 10.5.3.0 - (802917)"
2a - Yes!
2b -  No

Interesting piece of info I came across while putting together a small 
Eclipse project for repro... it seems very specific to my actual schema 
and the inclusion of an Order By clause on the query. I'm still 
debugging but seeing it work successfully on 350K result set on my 
repro-app was encouraging.

Thanks,
JW

Kristian Waagan wrote:
> 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,

Mime
View raw message