harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver Deakin <oliver.dea...@googlemail.com>
Subject [classlib] NLS exception messages arn't displayed correctly
Date Tue, 07 Nov 2006 17:15:19 GMT
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?

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?

Regards,
Oliver

-- 
Oliver Deakin
IBM United Kingdom Limited


Mime
View raw message