I don't quite know how to describe this. For a change,
this is not JNI related, pure Java. 

The problem: I made a mistake using String.charAt(8) on
strings that have only 8 characters max. set. 

  if (name.regionMatches(0,"texture",0,7)) {
    if ((name.charAt(7)=='1') || (name.charAt(7)=='2')) //******
      return TYPE_TNAME;
  }

The marked line had the bug. Now, the weird thing is that
I get a NullPointerException way later, at a completely
unrelated spot of the program (where there is no null
around anywhere), even in debug mode. Fixing the line
removed the crash.

I am not sure what String.charAt(i) is supposed to do when
you apply it to a String too short, but this doesn't strike 
me as proper response. What amazes me most is that a bogus 
read access has delayed consequences. The strings in question
are created by using StringBuffer.toString() repeatedly
on the same buffer = new StringBuffer(12), and the code
above is (after some name.equals("someConst")) the first
access to the newly created string.


Any ideas?


                                              b.



P.S.: details & source on demand. I tested against 117v1a, 
v2, and v3, all native threads.



----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to