public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* libgcj/1277: java.lang.Class.isAssignableFrom has various error conditions
@ 2000-12-20 12:23 WarrenL
0 siblings, 0 replies; only message in thread
From: WarrenL @ 2000-12-20 12:23 UTC (permalink / raw)
To: java-gnats
>Number: 1277
>Category: libgcj
>Synopsis: java.lang.Class.isAssignableFrom has various error conditions
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: bryce
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Dec 20 12:18:36 PST 2000
>Closed-Date: Sun Jun 18 23:14:29 PDT 2000
>Last-Modified: Tue Jun 20 19:00:01 PDT 2000
>Originator: Warren Levy
>Release: libgcj-2.95.1
>Organization:
>Environment:
>Description:
java.lang.Class.isAssignableFrom fails to properly determine if a class is a superclass of the class represented by this Class object in certain situations.
A test case has been submitted that includes the failing cases (as well as being a regression test for the passing cases).
>How-To-Repeat:
Run the attached test against JDK 1.1 or run the Class_1.java test in the libjava/testsuite/libjava.lang dir.
>Fix:
>Release-Note:
>Audit-Trail:
Formerly PR java.lang/258
From: warrenl@sourceware.cygnus.com
To: java-gnats@sourceware.cygnus.com
Cc:
Subject: java.lang/258
Date: 13 Jun 2000 23:44:05 -0000
CVSROOT: /cvs/java
Module name: libgcj
Changes by: warrenl@sourceware.cygnus.com 00/06/13 16:44:05
Modified files:
libjava/testsuite: ChangeLog
Added files:
libjava/testsuite/libjava.lang: Class_1.java Class_1.out
Log message:
Test for PR java.lang/258:
* libjava.lang/Class_1.java: New file.
* libjava.lang/Class_1.out: New file.
Patches:
http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/ChangeLog.diff?cvsroot=java&r1=1.100&r2=1.101
http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/libjava.lang/Class_1.java.diff?cvsroot=java&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/gcc/libjava/testsuite/libjava.lang/Class_1.out.diff?cvsroot=java&r1=NONE&r2=1.1
From: bryce@sourceware.cygnus.com
To: java-gnats@sourceware.cygnus.com
Cc:
Subject: java.lang/258
Date: 15 Jun 2000 11:58:18 -0000
CVSROOT: /cvs/java
Module name: libgcj
Changes by: bryce@sourceware.cygnus.com 00/06/15 04:58:18
Modified files:
libjava : ChangeLog prims.cc
libjava/java/lang: natClass.cc
Log message:
2000-06-15 Bryce McKinlay <bryce@albatross.co.nz>
Fix for PR java.lang/258:
* prims.cc (_Jv_PrimClass): Set state of primitive class to
JV_STATE_DONE, to prevent accidental initialization.
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
_Jv_InterfaceAssignableFrom if target is an interface and source is
an interface or an abstract class. Remove redundant initializeClass
calls. Remove duplicate if_idt test.
* java/lang/Class.h (_Jv_InterfaceAssignableFrom): New function.
Patches:
http://gcc.gnu.org/cgi-bin/gcc/libjava/ChangeLog.diff?cvsroot=java&r1=1.389&r2=1.390
http://gcc.gnu.org/cgi-bin/gcc/libjava/prims.cc.diff?cvsroot=java&r1=1.31&r2=1.32
http://gcc.gnu.org/cgi-bin/gcc/libjava/java/lang/natClass.cc.diff?cvsroot=java&r1=1.25&r2=1.26
From: bryce@sourceware.cygnus.com
To: java-gnats@sourceware.cygnus.com
Cc:
Subject: java.lang/258
Date: 15 Jun 2000 12:04:51 -0000
CVSROOT: /cvs/java
Module name: libgcj
Changes by: bryce@sourceware.cygnus.com 00/06/15 05:04:50
Modified files:
libjava : ChangeLog
libjava/java/lang: Class.h
Log message:
2000-06-15 Bryce McKinlay <bryce@albatross.co.nz>
Fix for PR java.lang/258:
* prims.cc (_Jv_PrimClass): Set state of primitive class to
JV_STATE_DONE, to prevent accidental initialization.
* java/lang/natClass.cc (_Jv_IsAssignableFrom): Call
_Jv_InterfaceAssignableFrom if target is an interface and source is
an interface or an abstract class. Remove redundant initializeClass
calls. Remove duplicate if_idt test.
(_Jv_InterfaceAssignableFrom): New function.
* java/lang/Class.h (_Jv_InterfaceAssignableFrom): Prototype.
Patches:
http://gcc.gnu.org/cgi-bin/gcc/libjava/ChangeLog.diff?cvsroot=java&r1=1.390&r2=1.391
http://gcc.gnu.org/cgi-bin/gcc/libjava/java/lang/Class.h.diff?cvsroot=java&r1=1.23&r2=1.24
Responsible-Changed-From-To: tromey->bryce
Responsible-Changed-By: bryce
Responsible-Changed-When: Sun Jun 18 23:14:29 2000
Responsible-Changed-Why:
This I fixed
State-Changed-From-To: open->closed
State-Changed-By: bryce
State-Changed-When: Sun Jun 18 23:14:29 2000
State-Changed-Why:
The patch at http://sourceware.cygnus.com/ml/java-patches/2000-q2/msg00227.html
was checked in to cvs.
From: bryce@albatross.co.nz
To: WarrenL@redhat.com, bryce@albatross.co.nz,
java-gnats@sourceware.cygnus.com, tromey@cygnus.com
Cc:
Subject: Re: java.lang/258
Date: 19 Jun 2000 06:14:29 -0000
Synopsis: java.lang.Class.isAssignableFrom has various error conditions
Responsible-Changed-From-To: tromey->bryce
Responsible-Changed-By: bryce
Responsible-Changed-When: Sun Jun 18 23:14:29 2000
Responsible-Changed-Why:
This I fixed
State-Changed-From-To: open->closed
State-Changed-By: bryce
State-Changed-When: Sun Jun 18 23:14:29 2000
State-Changed-Why:
The patch at http://sourceware.cygnus.com/ml/java-patches/2000-q2/msg00227.html
was checked in to cvs.
http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=258&database=java
From: Warren Levy <warrenl@cygnus.com>
To: bryce@albatross.co.nz
Cc: WarrenL@redhat.com, java-gnats@sourceware.cygnus.com, tromey@cygnus.com
Subject: Re: java.lang/258
Date: Mon, 19 Jun 2000 22:32:05 -0700 (PDT)
On 19 Jun 2000 bryce@albatross.co.nz wrote:
> Synopsis: java.lang.Class.isAssignableFrom has various error conditions
> State-Changed-From-To: open->closed
> State-Changed-By: bryce
> State-Changed-When: Sun Jun 18 23:14:29 2000
> State-Changed-Why:
> The patch at http://sourceware.cygnus.com/ml/java-patches/2000-q2/msg00227.html
> was checked in to cvs.
>
> http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=258&database=java
Bryce,
Since you closed java.lang/258, are you getting successful passes for all
the test cases of isAssignableFrom for the
libjava/testsuite/libjava.lang/Class_1.java test?
I applied the patch and no longer get the run-time exception from before,
but the 3 failure test cases are still there. Here are my results:
--- Actual Mon Jun 19 22:20:12 2000
+++ Expected Mon Jun 19 22:20:47 2000
@@ -1,17 +1,17 @@
Testing class `Class_1'...
false
true
-false
+true
false
true
true
false
-false
+true
printIsAssignableFrom(C[].class, C[][].class, false); case uncompilable due to known compiler limitation.
true
true
false
-false
+true
false
false
true
If you're getting no deviations from the expected values, I'll look
further at my build to figure out what I'm missing.
--warrenl
From: Bryce McKinlay <bryce@albatross.co.nz>
To: Warren Levy <warrenl@cygnus.com>
Cc: java-gnats@sourceware.cygnus.com, tromey@cygnus.com
Subject: Re: java.lang/258
Date: Tue, 20 Jun 2000 18:00:45 +1200
Warren Levy wrote:
> Since you closed java.lang/258, are you getting successful passes for all
> the test cases of isAssignableFrom for the
> libjava/testsuite/libjava.lang/Class_1.java test?
Sure:
[bryce@reason libjava.lang]$ javac Class_1.java
[bryce@reason libjava.lang]$ java Class_1 > class1.out.jdk
[bryce@reason libjava.lang]$ gcj -O2 Class_1.java -o c1 --main=Class_1
[bryce@reason libjava.lang]$ ./c1 > class1.out.gcj
[bryce@reason libjava.lang]$ diff -u class1.out.gcj class1.out.jdk
[bryce@reason libjava.lang]$
> I applied the patch and no longer get the run-time exception from before,
> but the 3 failure test cases are still there. Here are my results:
>
> --- Actual Mon Jun 19 22:20:12 2000
> +++ Expected Mon Jun 19 22:20:47 2000
> @@ -1,17 +1,17 @@
> Testing class `Class_1'...
> false
> true
> -false
> +true
> false
> true
> true
> false
> -false
> +true
> printIsAssignableFrom(C[].class, C[][].class, false); case uncompilable due to known compiler limitation.
> true
> true
> false
> -false
> +true
> false
> false
> true
>
> If you're getting no deviations from the expected values, I'll look
> further at my build to figure out what I'm missing.
These failures are different from the ones I was seeing before writing the patch. You're failing on some very
trivial cases like "C.class, D.class" and "J.class, J.class", which seems pretty odd!
I'm using gcc version 2.96 20000607 (experimental), is it possible you have a bad compiler?
regards
[ bryce ]
From: Warren Levy <warrenl@cygnus.com>
To: Bryce McKinlay <bryce@albatross.co.nz>
Cc: java-gnats@sourceware.cygnus.com, tromey@cygnus.com
Subject: Re: java.lang/258
Date: Tue, 20 Jun 2000 18:57:11 -0700 (PDT)
On Tue, 20 Jun 2000, Bryce McKinlay wrote:
> These failures are different from the ones I was seeing before writing the patch. You're failing on some very
> trivial cases like "C.class, D.class" and "J.class, J.class", which seems pretty odd!
>
> I'm using gcc version 2.96 20000607 (experimental), is it possible you have a bad compiler?
Nah, turns out the tree I was working in was missing some old patches from
way back. I applied them to my tree to get things in sync with sourceware
and things seem to be fine now. Thanks for your help!
--warrenl
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="Class_1.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Class_1.java"
Y2xhc3MgQyB7fQpjbGFzcyBEIGV4dGVuZHMgQyBpbXBsZW1lbnRzIEkge30KaW50ZXJmYWNlIEkg
e30KaW50ZXJmYWNlIEogZXh0ZW5kcyBJIHt9CgpwdWJsaWMgY2xhc3MgQ2xhc3NfMQp7CiAgc3Rh
dGljIHZvaWQgcHJpbnRJc0Fzc2lnbmFibGVGcm9tKENsYXNzIGEsIENsYXNzIGIsIGJvb2xlYW4g
YykKICAgIHsKICAgICAgLy8gVGhlIGZpZWxkICdjJyBjYW4gYmUgdmlld2VkIHRvIHNlZSB0aGUg
ZXhwZWN0ZWQgdmFsdWUuCiAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhLmlzQXNzaWduYWJsZUZy
b20oYikpOwogICAgfQoKICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIGFyZ1tdKQog
IHsKICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGVzdGluZyBjbGFzcyBgQ2xhc3NfMScuLi4iKTsK
ICAgIHByaW50SXNBc3NpZ25hYmxlRnJvbShDLmNsYXNzLCBPYmplY3QuY2xhc3MsIGZhbHNlKTsK
ICAgIHByaW50SXNBc3NpZ25hYmxlRnJvbShDLmNsYXNzLCBDLmNsYXNzLCB0cnVlKTsKICAgIHBy
aW50SXNBc3NpZ25hYmxlRnJvbShDLmNsYXNzLCBELmNsYXNzLCB0cnVlKTsKICAgIHByaW50SXNB
c3NpZ25hYmxlRnJvbShELmNsYXNzLCBDLmNsYXNzLCBmYWxzZSk7CgogICAgcHJpbnRJc0Fzc2ln
bmFibGVGcm9tKE9iamVjdC5jbGFzcywgaW50W10uY2xhc3MsIHRydWUpOwogICAgcHJpbnRJc0Fz
c2lnbmFibGVGcm9tKGludFtdLmNsYXNzLCBpbnRbXS5jbGFzcywgdHJ1ZSk7CiAgICBwcmludElz
QXNzaWduYWJsZUZyb20oQ1tdLmNsYXNzLCBELmNsYXNzLCBmYWxzZSk7CiAgICBwcmludElzQXNz
aWduYWJsZUZyb20oQ1tdLmNsYXNzLCBEW10uY2xhc3MsIHRydWUpOwogICAgLy8gS25vd24gY29t
cGlsZXIgbGltaXRhdGlvbiBwcmV2ZW50cyBuZXh0IGNhc2UgZnJvbSBjb21waWxpbmcuCiAgICAv
LyBwcmludElzQXNzaWduYWJsZUZyb20oQ1tdLmNsYXNzLCBDW11bXS5jbGFzcywgZmFsc2UpOwog
ICAgU3lzdGVtLm91dC5wcmludGxuKCJwcmludElzQXNzaWduYWJsZUZyb20oQ1tdLmNsYXNzLCBD
W11bXS5jbGFzcywgZmFsc2UpOyIgKwogICAgICAiIGNhc2UgdW5jb21waWxhYmxlIGR1ZSB0byBr
bm93biBjb21waWxlciBsaW1pdGF0aW9uLiIpOwoKICAgIHByaW50SXNBc3NpZ25hYmxlRnJvbShP
YmplY3QuY2xhc3MsIEkuY2xhc3MsIHRydWUpOwogICAgcHJpbnRJc0Fzc2lnbmFibGVGcm9tKEku
Y2xhc3MsIEkuY2xhc3MsIHRydWUpOwogICAgcHJpbnRJc0Fzc2lnbmFibGVGcm9tKEQuY2xhc3Ms
IEkuY2xhc3MsIGZhbHNlKTsKICAgIHByaW50SXNBc3NpZ25hYmxlRnJvbShJLmNsYXNzLCBELmNs
YXNzLCB0cnVlKTsKCiAgICBwcmludElzQXNzaWduYWJsZUZyb20oRC5jbGFzcywgSi5jbGFzcywg
ZmFsc2UpOwogICAgcHJpbnRJc0Fzc2lnbmFibGVGcm9tKEouY2xhc3MsIEQuY2xhc3MsIGZhbHNl
KTsKCiAgICBwcmludElzQXNzaWduYWJsZUZyb20oSS5jbGFzcywgSi5jbGFzcywgdHJ1ZSk7CiAg
ICBwcmludElzQXNzaWduYWJsZUZyb20oSi5jbGFzcywgSi5jbGFzcywgdHJ1ZSk7CiAgICBwcmlu
dElzQXNzaWduYWJsZUZyb20oSi5jbGFzcywgSS5jbGFzcywgZmFsc2UpOwoKICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZmYgYm90aCBDbGFzcyBvYmplY3RzIGFyZSBlcXVhbC4KICAgIHByaW50SXNBc3Np
Z25hYmxlRnJvbShsb25nLmNsYXNzLCBsb25nLmNsYXNzLCB0cnVlKTsKCiAgICAvLyBEb2VzIG5v
dCB3b3JrIGZvciBwcmltaXRpdmUgdHlwZXMgaW4gZ2VuZXJhbC4KICAgIHByaW50SXNBc3NpZ25h
YmxlRnJvbShsb25nLmNsYXNzLCBpbnQuY2xhc3MsIGZhbHNlKTsKICB9Cn0K
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2000-12-20 12:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-12-20 12:23 libgcj/1277: java.lang.Class.isAssignableFrom has various error conditions WarrenL
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).