From mboxrd@z Thu Jan 1 00:00:00 1970 From: bryce@albatross.co.nz To: java-gnats@sourceware.cygnus.com Subject: java/1333: private field access modifier not implemented correctly Date: Wed, 20 Dec 2000 12:25:00 -0000 Message-id: <20000809104841.19961.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q4/msg01111.html List-Id: >Number: 1333 >Category: java >Synopsis: private field access modifier not implemented correctly >Confidential: no >Severity: serious >Priority: medium >Responsible: apbianco >State: feedback >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Dec 20 12:19:06 PST 2000 >Closed-Date: >Last-Modified: Fri Aug 11 18:50:00 PDT 2000 >Originator: Bryce McKinlay >Release: unknown-1.0 >Organization: >Environment: any >Description: It is illegal to access a private field in any other class (except for inner and enclosing classes). The following code is illegal, but gcj does not complain. class Private { private int i; } class Sub extends Private { void b() { int j = i; } } >How-To-Repeat: compile the test case >Fix: >Release-Note: >Audit-Trail: Formerly PR gcj/309 State-Changed-From-To: open->feedback State-Changed-By: apbianco State-Changed-When: Fri Aug 11 18:44:42 2000 State-Changed-Why: Thank you for catching this, it's pretty lame. Here's a patch. From: apbianco@cygnus.com To: apbianco@cygnus.com, bryce@albatross.co.nz, java-gnats@sourceware.cygnus.com Cc: Subject: Re: gcj/309 Date: 12 Aug 2000 01:44:42 -0000 Synopsis: private field access modifier not implemented correctly State-Changed-From-To: open->feedback State-Changed-By: apbianco State-Changed-When: Fri Aug 11 18:44:42 2000 State-Changed-Why: Thank you for catching this, it's pretty lame. Here's a patch. http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=309&database=java >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch" MjAwMC0wOC0xMSAgQWxleGFuZHJlIFBldGl0LUJpYW5jbyAgPGFwYmlhbmNvQGN5Z251cy5jb20+ CgoJKiBwYXJzZS55IChub3RfYWNjZXNzaWJsZV9maWVsZF9lcnJvcik6IE5ldyBmdW5jdGlvbi4K CShyZXNvbHZlX2V4cHJlc3Npb25fbmFtZSk6IFVzZSBpdC4KCShyZXNvbHZlX3F1YWxpZmllZF9l eHByZXNzaW9uX25hbWUpOiBMaWtld2lzZS4gRml4ZXMgZ2NqLzMwOQoKSW5kZXg6IHBhcnNlLnkK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9nY2MvZWdjcy9nY2MvamF2YS9wYXJzZS55LHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjIwMApkaWZmIC11IC1wIC1yMS4yMDAgcGFyc2UueQotLS0gcGFy c2UueQkyMDAwLzA4LzExIDIyOjAxOjM3CTEuMjAwCisrKyBwYXJzZS55CTIwMDAvMDgvMTIgMDE6 Mzg6MjUKQEAgLTI0Nyw2ICsyNDcsNyBAQCBzdGF0aWMgdm9pZCBqYXZhX2NoZWNrX3JlZ3VsYXJf bWV0aG9kcyBQCiBzdGF0aWMgdm9pZCBqYXZhX2NoZWNrX2Fic3RyYWN0X21ldGhvZHMgUEFSQU1T ICgodHJlZSkpOwogc3RhdGljIHRyZWUgbWF5YmVfYnVpbGRfcHJpbXR0eXBlX3R5cGVfcmVmIFBB UkFNUyAoKHRyZWUsIHRyZWUpKTsKIHN0YXRpYyB2b2lkIHVucmVhY2hhYmxlX3N0bXRfZXJyb3Ig UEFSQU1TICgodHJlZSkpOworc3RhdGljIGludCBub3RfYWNjZXNzaWJsZV9maWVsZF9lcnJvciBQ QVJBTVMgKCh0cmVlLCB0cmVlKSk7CiBzdGF0aWMgdHJlZSBmaW5kX2V4cHJfd2l0aF93ZmwgUEFS QU1TICgodHJlZSkpOwogc3RhdGljIHZvaWQgbWlzc2luZ19yZXR1cm5fZXJyb3IgUEFSQU1TICgo dHJlZSkpOwogc3RhdGljIHRyZWUgYnVpbGRfbmV3X2FycmF5X2luaXQgUEFSQU1TICgoaW50LCB0 cmVlKSk7CkBAIC0zMTE5LDYgKzMxMjAsMTkgQEAgdW5yZWFjaGFibGVfc3RtdF9lcnJvciAobm9k ZSkKICAgICBmYXRhbCAoIkNhbid0IGdldCB2YWxpZCBzdGF0ZW1lbnQgLSB1bnJlYWNoYWJsZV9z dG10X2Vycm9yIik7CiB9CiAKK3N0YXRpYyBpbnQKK25vdF9hY2Nlc3NpYmxlX2ZpZWxkX2Vycm9y ICh3ZmwsIGRlY2wpCisgICAgIHRyZWUgd2ZsLCBkZWNsOworeworICBwYXJzZV9lcnJvcl9jb250 ZXh0IAorICAgICh3ZmwsICJDYW4ndCBhY2Nlc3MgJXMgZmllbGQgYCVzLiVzJyBmcm9tIGAlcyci LAorICAgICBqYXZhX2FjY3N0cmluZ19sb29rdXAgKGdldF9hY2Nlc3NfZmxhZ3NfZnJvbV9kZWNs IChkZWNsKSksCisgICAgIEdFVF9UWVBFX05BTUUgKERFQ0xfQ09OVEVYVCAoZGVjbCkpLAorICAg ICBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZGVjbCkpLAorICAgICBJREVOVElGSUVS X1BPSU5URVIgKERFQ0xfTkFNRSAoVFlQRV9OQU1FIChjdXJyZW50X2NsYXNzKSkpKTsKKyAgcmV0 dXJuIDE7Cit9CisKIGludAogamF2YV9yZXBvcnRfZXJyb3JzICgpCiB7CkBAIC04NzUwLDYgKzg3 NjQsMTIgQEAgcmVzb2x2ZV9leHByZXNzaW9uX25hbWUgKGlkLCBvcmlnKQogCSAgICAgIC8qIFdl IG1heSBiZSBhc2tlZCB0byBzYXZlIHRoZSByZWFsIGZpZWxkIGFjY2VzcyBub2RlICovCiAJICAg ICAgaWYgKG9yaWcpCiAJCSpvcmlnID0gYWNjZXNzOworCSAgICAgIC8qIExhc3QgY2hlY2s6IGNh biB3ZSBhY2Nlc3MgdGhlIGZpZWxkPyAqLworCSAgICAgIGlmIChub3RfYWNjZXNzaWJsZV9wIChU UkVFX1RZUEUgKGRlY2wpLCBkZWNsLCAwKSkKKwkJeworCQkgIG5vdF9hY2Nlc3NpYmxlX2ZpZWxk X2Vycm9yIChpZCwgZGVjbCk7CisJCSAgcmV0dXJuIGVycm9yX21hcmtfbm9kZTsKKwkJfQogCSAg ICAgIC8qIEFuZCB3ZSByZXR1cm4gd2hhdCB3ZSBnb3QgKi8KIAkgICAgICByZXR1cm4gYWNjZXNz OwogCSAgICB9CkBAIC05MTk1LDE1ICs5MjE1LDcgQEAgcmVzb2x2ZV9xdWFsaWZpZWRfZXhwcmVz c2lvbl9uYW1lICh3ZmwsIAogCSAgICB9CiAKIAkgIGlmIChub3RfYWNjZXNzaWJsZV9wIChUUkVF X1RZUEUgKGRlY2wpLCBkZWNsLCAwKSkKLQkgICAgewotCSAgICAgIHBhcnNlX2Vycm9yX2NvbnRl eHQgCi0JCShxdWFsX3dmbCwgIkNhbid0IGFjY2VzcyAlcyBmaWVsZCBgJXMuJXMnIGZyb20gYCVz JyIsCi0JCSBqYXZhX2FjY3N0cmluZ19sb29rdXAgKGdldF9hY2Nlc3NfZmxhZ3NfZnJvbV9kZWNs IChkZWNsKSksCi0JCSBHRVRfVFlQRV9OQU1FICh0eXBlKSwKLQkJIElERU5USUZJRVJfUE9JTlRF UiAoREVDTF9OQU1FIChkZWNsKSksCi0JCSBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAo VFlQRV9OQU1FIChjdXJyZW50X2NsYXNzKSkpKTsKLQkgICAgICByZXR1cm4gMTsKLQkgICAgfQor CSAgICByZXR1cm4gbm90X2FjY2Vzc2libGVfZmllbGRfZXJyb3IgKHF1YWxfd2ZsLCBkZWNsKTsK IAkgIGNoZWNrX2RlcHJlY2F0aW9uIChxdWFsX3dmbCwgZGVjbCk7CiAKIAkgIHR5cGUgPSBUUkVF X1RZUEUgKGRlY2wpOwpAQCAtOTMxNCwxOCArOTMyNiw3IEBAIHJlc29sdmVfcXVhbGlmaWVkX2V4 cHJlc3Npb25fbmFtZSAod2ZsLCAKIAkgICAgICAKIAkgICAgICAvKiBDaGVjayBvbiBhY2Nlc3Np YmlsaXR5IGhlcmUgKi8KIAkgICAgICBpZiAobm90X2FjY2Vzc2libGVfcCAodHlwZSwgZmllbGRf ZGVjbCwgZnJvbV9zdXBlcikpCi0JCXsKLQkJICBwYXJzZV9lcnJvcl9jb250ZXh0IAotCQkgICAg KHF1YWxfd2ZsLAotCQkgICAgICJDYW4ndCBhY2Nlc3MgJXMgZmllbGQgYCVzLiVzJyBmcm9tIGAl cyciLAotCQkgICAgIGphdmFfYWNjc3RyaW5nX2xvb2t1cCAKLQkJICAgICAgIChnZXRfYWNjZXNz X2ZsYWdzX2Zyb21fZGVjbCAoZmllbGRfZGVjbCkpLAotCQkgICAgIEdFVF9UWVBFX05BTUUgKHR5 cGUpLAotCQkgICAgIElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FIChmaWVsZF9kZWNsKSks Ci0JCSAgICAgSURFTlRJRklFUl9QT0lOVEVSIAotCQkgICAgICAgKERFQ0xfTkFNRSAoVFlQRV9O QU1FIChjdXJyZW50X2NsYXNzKSkpKTsKLQkJICByZXR1cm4gMTsKLQkJfQorCQlyZXR1cm4gbm90 X2FjY2Vzc2libGVfZmllbGRfZXJyb3IgKHF1YWxfd2ZsLGZpZWxkX2RlY2wpOwogCSAgICAgIGNo ZWNrX2RlcHJlY2F0aW9uIChxdWFsX3dmbCwgZmllbGRfZGVjbCk7CiAJICAgICAgCiAJICAgICAg LyogVGhlcmUgYXJlIHRoaW5ncyB0byBjaGVjayB3aGVuIGZpZWxkcyBhcmUgYWNjZXNzZWQK