Tim Ellison wrote:
Oliver Deakin wrote:
Hi all,

I was checking out some JIRAs and spotted that when we
print exception stack traces at the moment we're not getting
the full NLS message. For example, running the following:

public class Test {
 public static void main(String[] args) throws Throwable {
     throw new NullPointerException();
 }
}

prints:

K0319java.lang.NullPointerException
   at Test.main(Test.java:3)
FAILED to invoke JVM.

I can spot 2 things wrong with this output (pats on the back
if you spot more!):
1) K0319 should actually say something like
'Exception in thread "main" '. It looks like out NLS messages
arn't being printed correctly - anyone got any ideas about this
one?

The message was missing in the catalog.  I added it in r472226.


Great, thanks! I now get:

Exception in thread "main" java.lang.NullPointerException
       at Test.main(Test.java:3)
FAILED to invoke JVM.

Never thought Id be happy to see a NullPointerException message...

Regards,
Oliver

2) The bogus "FAILED to invoke JVM" message.
Looks like this is coming from the launcher (Im running
Harmony + IBM VME).
It appears that this happens because in main_runJavaMain
(in the launcher main.c) after we make the CallStaticVoidMethod()
call to run main, we do the following:

if ((*env)->ExceptionCheck (env))
   {
     if (rc == 0)
       rc = 100;
   }

which causes a return code of 100 to be passed back to
gpProtectedMain() via the invocation() function, where it is used
in the following way:

if (invocation(...))
   {
     hytty_printf (PORTLIB, "FAILED to invoke JVM.\n");
     goto bail;
   }

I imagine this misleading message also appears with DRLVM?
I'm not setup at the moment to test it.
Is there a reason we set the return code to 100 if there's an
unhandled exception?

I'll leave that one for the person who changed the code ;-)

Regards,
Tim


--
Oliver Deakin
IBM United Kingdom Limited

Reply via email to