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

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

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

   ## 🚨 All tests passed but jobs failed 🚨
   
   ### Failed Jobs without Test Failures
   
   ❌ [Build and test / lts \(17, 
ubuntu-latest\)](https://github.com/apache/groovy/actions/runs/42325301302/job/128259065668?pr=3252)
   
   🏷️ Commit: 40f16466915c3d10249a1565c72922aa4eeb485d
   ▶️ Tests:  93273 executed
   🟡 Checks: 11/24 completed
   
   ### Rerun Controls
   
   Click the checkbox to trigger a rerun:
   
   🔲 **Rerun jobs**
   
   ---
   _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