[re] Java executables can abort trying to access a null pointer in a leaf function

tsuraan tsuraan@gmail.com
Thu Feb 2 20:12:00 GMT 2006

> The longer I look at this, the more bizarre it is.
> I'm wondering if maybe _Jv_ThrowNullPointerException either has no
> unwind info or its unwind info is not found.  That would do it.
> Maybe no methods in libgcj can throw exceptions.  Try
> StringBuffer.append(char[] data, int offset, int count) with something
> out of bounds.  See if you can catch that.
> If that works, see if something like native code
> FileChannelImpl.open (String, int) can throw a FileNotFoundException.

Actually, I guess that the StringBuffer.append really isn't working. 
If my code looks like:

public class NullPointer
  private int i = 5;
  private static int j = 10;

  public static void main(String[] args)
      new NullPointer().foo(null);
    catch (NullPointerException x)
      System.out.println("Caught an exception!");

  void foo(NullPointer e)
    StringBuffer sb = new StringBuffer("hello there");
    char c[] = {'a', 'b', 'c', 'd'};
    sb.append(c, 2, 3);

I never do see the "Caught an exception!" message.  I had thought the
exeption in thread main was the print of x, but I guess it isn't.

More information about the Java mailing list