gnu.gcj.runtime.StringBuffer bug ???

Olivier LF olivier@zipworld.com.au
Sun Dec 16 02:34:00 GMT 2001


Does anybody get this?
public class A 
{
 public static void main(String[] args) 
 {
 String a = "01";
 String b = "234567890123456789012345678901234";
 a = a + b;
 System.out.println(a);
 }
}
tournesol$ gcj --main=A A.java
tournesol$ ./a.out
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
 at 0x401e9381: java.lang.Throwable.Throwable() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401dd87f: java.lang.Exception.Exception() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401e213f: java.lang.RuntimeException.RuntimeException() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401de63f: java.lang.IndexOutOfBoundsException.IndexOutOfBoundsException() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401d8a5f: java.lang.ArrayIndexOutOfBoundsException.ArrayIndexOutOfBoundsException() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401cdee7: java.lang.String.getChars(int, int, char[], int) (/usr/local/gcc/lib/libgcj.so.2)
 at 0x4024bdd5: gnu.gcj.runtime.StringBuffer.append(java.lang.String) (/usr/local/gcc/lib/libgcj.so.2)
 at 0x08048d62: A::main(JArray<java::lang::String*>*) (/home/olivier/ws/jdom-b7/src/samples/A.java:7)
 at 0x401c3e38: gnu.gcj.runtime.FirstThread.call_main() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x4024b618: gnu.gcj.runtime.FirstThread.run() (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401d0d2c: _Jv_ThreadRun(java.lang.Thread) (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401a8794: _Jv_RunMain(java.lang.Class, byte const, int, byte const, boolean) (/usr/local/gcc/lib/libgcj.so.2)
 at 0x401a88ed: JvRunMain (/usr/local/gcc/lib/libgcj.so.2)
 at 0x08048cd0: main (/tmp/ccojeypl.i:0)
 at 0x4055b65f: __libc_start_main (/lib/libc.so.6)
 at 0x08048ba9: _start (??:0)
If I remove one character from String "a" or "b", the problem evaporates!
This is with gcj:
tournesol:~$ gcj -v
Reading specs from /usr/local/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Reading specs from /usr/local/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../libgcj.spec
rename spec lib to liborig
Configured with: ../../program/cvs/gcc/configure --prefix=/usr/local/gcc --enable-shared --enable-threads=posix --enable-languages=c++,java
Thread model: posix
gcc version 3.1 20011211 (experimental)
Olivier
-- 
----------------------------------------------------------------------
Olivier Louchart-Fletcher
Email: olivier@zipworld.com.au


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /