This is the mail archive of the
java-prs@sourceware.cygnus.com
mailing list for the Java project.
libgcj/35: Multidimensional array creation fails at runtime
- To: java-gnats@sourceware.cygnus.com
- Subject: libgcj/35: Multidimensional array creation fails at runtime
- From: bryce@albatross.co.nz
- Date: 17 Aug 1999 04:52:44 -0000
- Reply-To: bryce@albatross.co.nz
- Resent-Cc: java-prs@sourceware.cygnus.com, green@cygnus.com,
- Resent-Reply-To: gnats-admin@sourceware.cygnus.com, bryce@albatross.co.nz
- Resent-To: tromey@cygnus.com
>Number: 35
>Category: libgcj
>Synopsis: Multidimensional array creation fails at runtime
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: tromey
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Aug 16 22:00:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator: Bryce McKinlay
>Release: current cvs libjava, any gcj version
>Organization:
>Environment:
Linux reason 2.2.5 #10 Mon May 10 13:52:11 NZST 1999 i686 unknown
>Description:
A recent change to libgcj seems to have resulted in the
instantiation of multi-dimensional arrays to produce a
NullPointerException. I don't think this is a compiler
problem since going back to older compilers doesn't fix it
but going back to an older libgcj does.
>How-To-Repeat:
public class Array_2
{
static final int a = 10, b = 15;
public static void main(String args[])
{
int[][] foo = new int [a][b];
System.out.println(foo.length);
System.out.println(foo[a-1].length);
}
}
./Array_2
uncaught exception at top level
java.lang.NullPointerException
(gdb) r
Starting program: /home/bryce/projects/libgcj/libjava/testsuite/libjava.lang/./Array_2
[New Thread 3820]
[New Thread 3819]
[New Thread 3821]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 3821]
Program received signal SIGSEGV, Segmentation fault.
0x40108645 in java::lang::Class::isArray (this=0x804dc6e)
at ../../../libjava/java/lang/Class.h:121
121 return name->data[0] == '[';
Current language: auto; currently c++
(gdb) bt
#0 0x40108645 in java::lang::Class::isArray (this=0x804dc6e)
at ../../../libjava/java/lang/Class.h:121
#1 0x40093d30 in _Jv_NewMultiArray (array_type=0x804dc6e, dimensions=2)
at ../../../libjava/java/lang/Class.h:78
#2 0x40093e2c in _Jv_NewMultiArray () at ../../../libjava/prims.cc:457
#3 0x804ad27 in Array_2::main (args=0x806fff0) at Array_2.java:7
#4 0x40109e0a in java::lang::FirstThread::run0 (this=0x8067f90)
at ../../../libjava/java/lang/natFirstThread.cc:66
#5 0x400c35f4 in java::lang::FirstThread::run (this=0x8067f90)
at ../../../libjava/java/lang/FirstThread.java:26
#6 0x400cd5d6 in java::lang::Thread::run_ (this=0x8067f90)
at ../../../libjava/java/lang/Thread.java:119
#7 0x4010e4d6 in java::lang::Thread::run__ (obj=0x8067f90)
at ../../../libjava/java/lang/natThread.cc:257
#8 0x4011e471 in really_start (x=0x8062ef0)
at ../../../libjava/posix-threads.cc:289
#9 0x401c5846 in GC_start_routine (arg=0x8085fe0)
at ../../../boehm-gc/linux_threads.c:539
#10 0x401dcce9 in pthread_start_thread (arg=0xbf7ffe7c) at manager.c:204
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: