Peter K Chan wrote:
Charles,
        I tried out the patch, but there is a small bug: the expression 
implementationClass.getBaseName() sometimes return null, thus causing a NPE 
when constructing a StackTraceElement.

        I am a little confused about the purpose of the patch though. Is it 
suppose to handle internal JRuby exceptions, such as NPE or CCE? I applied it 
and it runs fine, but a NPE from AR-JDBC's internal adapter still shows through 
with no Ruby source file information on the trace.

It currently does not do anything for Java exceptions. The first version was an attempt to solve the issue of Ruby exceptions (in the form of RailsException) from leaking out into Java with a nearly-useless stack trace. By rewriting the stack trace to include Ruby call information, you can at least start to hunt down where it's happening.

I started out trying to support rewriting for arbitrary exceptions, but it proved impossible for one painful reason: checked exceptions. I could easily catch Exception and rewrite its stack trace...but I could not then re-throw it. Very frustrating.

The only hope for being able to re-throw a checked exception without declaring that I'm throwing it would be to generate non-Java bytecode that does the throw for me. But I will give it a try with unchecked exceptions and see how it goes.

- Charlie

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to