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).