[ 
https://issues.apache.org/jira/browse/GROOVY-12718?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18140550#comment-18140550
 ] 

ASF GitHub Bot commented on GROOVY-12718:
-----------------------------------------

testlens-app[bot] commented on PR #3252:
URL: https://github.com/apache/groovy/pull/3252#issuecomment-6717572457

   ## ✅ All tests passed ✅
   
   🏷️ Commit: 08ba58e1816b35d4c89ad403d5aada9321b77b64
   ▶️ Tests:  62884 executed
   ⚪️ Checks: 26/26 completed
   
   ---
   _Learn more about TestLens at 
[testlens.app/docs](https://testlens.app/docs/features/pr-comment/)._
   




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

Reply via email to