[
https://issues.apache.org/jira/browse/GROOVY-12718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18140531#comment-18140531
]
ASF GitHub Bot commented on GROOVY-12718:
-----------------------------------------
codeconsole commented on PR #3252:
URL: https://github.com/apache/groovy/pull/3252#issuecomment-6717052728
@daniellansun I can't re-run jobs on apache/groovy, so I merged current
master (492ae79db4) to get a fresh run. `lts (17, ubuntu-latest)` failed on
`:groovy-dateutil:test` reading the grape cache. No code changes;
`DynamicFieldOfAnotherRuntimePackageTest` passes locally on the merge.
> super.f, super.@f and this.@f of a package-private field of a superclass of
> another class loader fail with IllegalAccessError in dynamic code
> ---------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GROOVY-12718
> URL: https://issues.apache.org/jira/browse/GROOVY-12718
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 4.0.32, 5.0.8, 6.0.0
> Reporter: Scott Murphy Heiberg
> Priority: Major
>
> {code:groovy}
> def shell = new GroovyShell()
> shell.evaluate '''package p
> class F { @groovy.transform.PackageScope String pf = 'pf' }
> true'''
> shell.evaluate '''package p
> class C extends F {
> def test() {
> assert pf == 'pf' // works
> assert this.pf == 'pf' // works
> super.pf // IllegalAccessError, as are super.@pf,
> this.@pf and writes through them
> }
> }
> new C().test()'''
> {code}
> *Actual:* {{IllegalAccessError: class p.C tried to access field p.F.pf}}.
> *Expected:* the value of the field, through the meta-class, as for {{pf}} and
> {{this.pf}}.
> Cause: {{F}} comes from an earlier parse, so it has the same package name as
> {{C}} but another class loader, which makes it another run-time package.
> {{AsmClassGenerator.visitPropertyExpression}} and
> {{visitAttributeExpression}} decide by the package name and write
> {{GETFIELD}} or {{PUTFIELD}}, in dynamic and {{@TypeChecked}} code too.
> Verified on 4.0.32, 5.0.8, 6.0.0 and master.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)