stack overflow interacts poorly with classloaders
Godmar Back
kaffe@rufus.w3.org
Mon, 12 Jun 2000 14:35:32 -0600 (MDT)
Just preload it once and for all and throw the same type in all threads,
even those that run in a classloader context.
This should be "close enough".
- Godmar
>
>
> hi,
>
> I've run into an odd problem that I don't know quite how to fix.
> Basically, a stack overflow isn't handled particularly well, especially
> when there are class loaders involved. Since we execute a good deal of
> code to throw the exception it eats up even more stack and we risk going
> past the red zone and overwriting the jthread structure adjacent to the
> stack, or other important data. The problem is exasperated when the
> method that caused the overflow is in a class that was loaded by a class
> loader. In this case we would be asking java code to load our class, but
> the java code will just complain about not having any stack! So far the
> only options i've come up with to fix this annoying little problem is to
> either:
>
> 1. preload the StackOverflow class and any of its parents if they are
> referenced by a class. Could be a lot of work to do for an unlikely
> situation
>
> 2. Have the offending thread use some other thread to do most of the
> class loading work, and then the offending thread can take the final
> step and throw the exception. I like this option the most, but
> theres bound to be some nasty problem...
>
> Any ideas?
>
> thanks,
>
> tim stack
>