[kaffe] createDaemon Bug in kaffe-1.0.6
Fang Weijian
wjfang@csis.hku.hk
Thu, 27 Jun 2002 11:45:01 +0800
I found a bug related to createDaemon and gc in kaffe-1.0.6.
In createDaemon() of thread.c, an Hjava_lang_Thread object will be created,
and its members, target and group, will be used to store the function and
arg of the daemon temporarily. Later, target and group will be reset in
startSpecialThread().
However, if a gc is invoked between createDaemon and startSpecialThread, a
bug will occur. According to the gc layout of Hjava_lang_Thread, gc will try
to mark what the target points to. At this moment, target points to the
daemon function that is not in the heap. Then Kaffe will abnormally exit.
I don't know whether this bug has been reported before, and whether it is
fixed in the latest version of Kaffe.
Thanks.
Regards,
Weijian
----- Original Message -----
From: "Dalibor Topic" <robilad@yahoo.com>
To: <kaffe@kaffe.org>
Sent: Thursday, June 27, 2002 10:32 AM
Subject: [kaffe] JDK API compatibility
> Hi,
>
> I played with japitools 0.8 today. I created japi
> files for jdk 1.0.2, 1.2 and 1.3. Jdk 1.4 can't be
> japized due to a bug in jode. Overall, I must say that
> japitools are quite nice.
>
> Current (as in what's in CVS right now) kaffe's stats:
>
> vs Java 1.0 API:
>
> Packages: none missing, 7 good.
> Classes: 1 missing, 1 bad, 170 good.
> Interfaces: none missing, none bad, 18 good.
> Fields: 4 missing, 5 bad, 446 good.
> Constructors: 2 missing, none bad, 317 good.
> Methods: 29 missing, 10 bad, 4799 good.
> Total Errors: 52.
> Meaningless API coverage score: 2.17% missing, 0.27%
> bad, 97.56% good.
>
> vs Java 1.1 API
>
> Packages: 1 missing, 21 good.
> Classes: 3 missing, 1 bad, 384 good.
> Interfaces: 1 missing, none bad, 80 good.
> Fields: 1 missing, 49 bad, 1376 good.
> Constructors: 3 missing, 1 bad, 645 good.
> Methods: 13 missing, 16 bad, 10486 good.
> Total Errors: 88.
> Meaningless API coverage score: 1.63% missing, 0.51%
> bad, 97.86% good.
>
> vs Java 1.2 API
>
> Packages: 27 missing, 26 good.
> Classes: 73 missing, 14 bad, 476 good.
> Interfaces: 26 missing, none bad, 110 good.
> Fields: 141 missing, 51 bad, 1793 good.
> Constructors: 25 missing, 2 bad, 857 good.
> Methods: 515 missing, 26 bad, 14157 good.
> Total Errors: 879.
> Meaningless API coverage score: 18.93% missing, 0.43%
> bad, 80.64% good.
>
> vs Java 1.3 API
>
> Packages: 40 missing, 26 good.
> Classes: 120 missing, 35 bad, 461 good.
> Interfaces: 35 missing, none bad, 113 good.
> Fields: 152 missing, 53 bad, 1775 good.
> Constructors: 32 missing, 2 bad, 865 good.
> Methods: 578 missing, 27 bad, 14264 good.
> Total Errors: 1043.
> Meaningless API coverage score: 29.59% missing, 0.47%
> bad, 69.94% good.
>
> What do the numbers tell us? We are pretty close to
> having an implementation of the full Java 1.0 API. The
> errors pointed out by japitools seem to be easily
> fixable. For Java 1.1 API, the situation is similar.
> The missing package is java.security.acl, containing
> only interfaces and exceptions, so that should be
> easy. Unfortunately, we are quite far away from full
> 1.2, and even further from full 1.3 API.
>
> That being said, our implementation of the essential
> packages (io, lang, net, util) seems to have only a
> few remaining things missing for 1.2 compliance. Most
> of that will come with 1.2 class loading, once it's
> done.
>
> I'm off to fix the JDK 1.0 issues ...
>
> dali
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! - Official partner of 2002 FIFA World Cup
> http://fifaworldcup.yahoo.com