java/1275: Cannot access static fields of static inner classes

mark@klomp.org mark@klomp.org
Wed Dec 20 12:23:00 GMT 2000


>Number:         1275
>Category:       java
>Synopsis:       Cannot access static fields of static inner classes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apbianco
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 20 12:18:35 PST 2000
>Closed-Date:    Thu Jul 20 17:07:52 PDT 2000
>Last-Modified:  Thu Jul 20 17:16:01 PDT 2000
>Originator:     mark@klomp.org
>Release:        gcc version 2.96 20000602 (experimental)
>Organization:
>Environment:

>Description:
The following code does not compile:

public class A {
    public static void main(String args[]) {
        B.Hello hello = new B.Hello();
        System.out.println(hello.WORLD);
        System.out.println(B.Hello.World);
    }
}

class B {
    static class Hello {
        public static final String WORLD = "Hello World!";
    }
}

'gcj --main=A A.java' gives:

A.java: In class `A':
A.java: In method `main(java.lang.String[])':
A.java:5: No variable `Hello' defined in type `B'.
        System.out.println(B.Hello.World);
                            ^
1 error

Note that commenting out that line does compile.
So it is possible to access the field indirectly by creating
an object, but not directly through the inner class.
>How-To-Repeat:

>Fix:

>Release-Note:

>Audit-Trail:

Formerly PR gcj/256

State-Changed-From-To: open->feedback
State-Changed-By: apbianco
State-Changed-When: Fri Jul  7 14:39:42 2000
State-Changed-Why:
    I attached a patch.

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mark@klomp.org
Cc:  
Subject: Re: gcj/256
Date: 7 Jul 2000 21:39:42 -0000

 Synopsis: Cannot access static fields of static inner classes
 
 State-Changed-From-To: open->feedback
 State-Changed-By: apbianco
 State-Changed-When: Fri Jul  7 14:39:42 2000
 State-Changed-Why:
     I attached a patch.
 
 http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=256&database=java

From: Mark Wielaard <mark@klomp.org>
To: apbianco@cygnus.com
Cc: java-gnats@sourceware.cygnus.com
Subject: Re: gcj/256
Date: Fri, 14 Jul 2000 14:04:36 +0200

 >     I attached a patch.
 
 I tried the patch against a recent CVS version and it fixes the problem for me.
 
 Thanks
State-Changed-From-To: feedback->closed
State-Changed-By: apbianco
State-Changed-When: Thu Jul 20 17:07:52 2000
State-Changed-Why:
    I checked in a jumbo patch to fix gcj/256 (among other PRs:)
    
      http://gcc.gnu.org/ml/gcc-patches/2000-07/msg00801.html

From: apbianco@cygnus.com
To: apbianco@cygnus.com, java-gnats@sourceware.cygnus.com, mark@klomp.org
Cc:  
Subject: Re: gcj/256
Date: 21 Jul 2000 00:07:52 -0000

 Synopsis: Cannot access static fields of static inner classes
 
 State-Changed-From-To: feedback->closed
 State-Changed-By: apbianco
 State-Changed-When: Thu Jul 20 17:07:52 2000
 State-Changed-Why:
     I checked in a jumbo patch to fix gcj/256 (among other PRs:)
     
       http://gcc.gnu.org/ml/gcc-patches/2000-07/msg00801.html
 
 http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=256&database=java
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch"

MjAwMC0wNy0wNyAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+
CgoJKiBwYXJzZS55IChyZXNvbHZlX3F1YWxpZmllZF9leHByZXNzaW9uX25hbWUpOiBIYW5kbGUg
aW5uZXIgY2xhc3MKCWFjY2Vzcy4gRml4ZXMgZ2NqLzI1Ni4KCkluZGV4OiBwYXJzZS55Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KZGlmZiAtdSAtcCBwYXJzZS55Ci0tLSBvbGQtcGFyc2UueQlUaHUgSnVsICA2IDIzOjQy
OjA1IDIwMDAKKysrIHBhcnNlLnkJRnJpIEp1bCAgNyAxNDozMTowNyAyMDAwCkBAIC05MTY5LDYg
KzkxNjksMjQgQEAgcmVzb2x2ZV9xdWFsaWZpZWRfZXhwcmVzc2lvbl9uYW1lICh3ZmwsIAogCSAg
ICAgIAogCSAgICAgIGZpZWxkX2RlY2wgPSBsb29rdXBfZmllbGRfd3JhcHBlciAodHlwZSwKIAkJ
CQkJCSBFWFBSX1dGTF9OT0RFIChxdWFsX3dmbCkpOworCisJICAgICAgLyogTWF5YmUgd2hhdCB3
ZSdyZSB0cnlpbmcgdG8gYWNjZXNzIGFuIGlubmVyIGNsYXNzLiAqLworCSAgICAgIGlmICghZmll
bGRfZGVjbCkKKwkJeworCQkgIHRyZWUgcHRyLCBpbm5lcl9kZWNsOworCisJCSAgQlVJTERfUFRS
X0ZST01fTkFNRSAocHRyLCBFWFBSX1dGTF9OT0RFIChxdWFsX3dmbCkpOworCQkgIGlubmVyX2Rl
Y2wgPSByZXNvbHZlX2NsYXNzIChkZWNsLCBwdHIsIE5VTExfVFJFRSwgcXVhbF93ZmwpOworCQkg
IGlmIChpbm5lcl9kZWNsKQorCQkgICAgeworCQkgICAgICBjaGVja19pbm5lcl9jbGFzc19hY2Nl
c3MgKGlubmVyX2RlY2wsIGRlY2wsIHF1YWxfd2ZsKTsgCisJCSAgICAgIHR5cGUgPSBUUkVFX1RZ
UEUgKGlubmVyX2RlY2wpOworCQkgICAgICBkZWNsID0gaW5uZXJfZGVjbDsKKwkJICAgICAgZnJv
bV90eXBlID0gMTsKKwkJICAgICAgY29udGludWU7CisJCSAgICB9CisJCX0KKwogCSAgICAgIGlm
IChmaWVsZF9kZWNsID09IE5VTExfVFJFRSkKIAkJewogCQkgIHBhcnNlX2Vycm9yX2NvbnRleHQg
Cg==




More information about the Gcc-prs mailing list