This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Why does this program cause an NPE in LibgcjInternalFinalizerThread??
- From: David Daney <ddaney at avtrex dot com>
- To: java at gcc dot gnu dot org
- Date: Tue, 19 Aug 2003 14:41:07 -0700
- Subject: Why does this program cause an NPE in LibgcjInternalFinalizerThread??
I am still trying to find the cause of a problem I am having. This
program seems to make libgcj unhappy.
Any Idea of why?
System configuration linux x86 (RedHat 7.1) w/ kernel 2.4.20 and gcj 3.3.1
------------------------------
import java.lang.ref.*;
public class Reftest {
public void run(int id)
{
Reference r;
for (int i=0; i<10000; i++) {
r = new SoftReference("SoftReference Id "+id + ' ' + i);
r = new WeakReference("WeakReference Id "+id + ' ' + i);
}
System.out.println("iteration "+id+" finishing");
}
public Reftest() {
}
public static void main(String[] args) {
for (int i = 0; i<20; i++) {
Reftest reftest1 = new Reftest();
reftest1.run(i+1);
}
}
}
-----------------------------------
Results in:
[daney@dl proton]$ gcj --version
gcj (GCC) 3.3.1
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[daney@dl proton]$ gcj -g -O2 -o Reftest --main=Reftest Reftest.java
[daney@dl proton]$ ./Reftest
iteration 1 finishing
Exception in thread "LibgcjInternalFinalizerThread"
java.lang.NullPointerException
at GC_invoke_finalizers (/home/local/lib/libgcj.so.4.0.0)
at _Jv_RunFinalizers() (/home/local/lib/libgcj.so.4.0.0)
at gnu.gcj.runtime.FinalizerThread.runFinalizers()
(/home/local/lib/libgcj.so.4.0.0)
at gnu.gcj.runtime.FinalizerThread.run()
(/home/local/lib/libgcj.so.4.0.0)
at _Jv_ThreadRun(java.lang.Thread) (/home/local/lib/libgcj.so.4.0.0)
at GC_start_routine (/home/local/lib/libgcj.so.4.0.0)
at __clone (/lib/i686/libc-2.2.4.so)
iteration 2 finishing
iteration 3 finishing
iteration 4 finishing
iteration 5 finishing
iteration 6 finishing
iteration 7 finishing
iteration 8 finishing
iteration 9 finishing
iteration 10 finishing
iteration 11 finishing
iteration 12 finishing
iteration 13 finishing
iteration 14 finishing
iteration 15 finishing
iteration 16 finishing
iteration 17 finishing
iteration 18 finishing
iteration 19 finishing
iteration 20 finishing