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

Eric Holley commented on GROOVY-10037:
--------------------------------------

One other note. Instantiating BugClass by itself and calling its test() method 
does not cause the bug to occur. It only occurs when test() is called in an 
instantiation of ExtendedBugClass.  I've attached an updated example file 
demonstrating this.

> Private setter method in class that is extended by another class cannot be 
> found.
> ---------------------------------------------------------------------------------
>
>                 Key: GROOVY-10037
>                 URL: https://issues.apache.org/jira/browse/GROOVY-10037
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 3.0.7
>         Environment: groovy 3.0.7
> javac 13.0.2
> Windows/10
>            Reporter: Eric Holley
>            Priority: Major
>         Attachments: StaticSetterBug.groovy, StaticSetterBug.groovy
>
>
> If you have a class that is extended by another class and there is a private 
> setter in the class that is extended, that setter cannot be found at runtime. 
> Example script attached. At runtime, the following exception trace is shown:
> {code:java}
> groovy.lang.MissingPropertyException: No such property: $priv for class: 
> com.my_example.ExtendedBugClass
> Possible solutions: $pub
> at com.my_example.BugClass.test(StaticSetterBug.groovy:27)
> at com.my_example.ExtendedBugClass.run(StaticSetterBug.groovy:37)
> at com.my_example.ExtendedBugClass$run.call(Unknown Source)
> at com.my_example.StaticSetterBug.run(StaticSetterBug.groovy:42)
> at jdk.internal.reflect.GeneratedMethodAccessor305.invoke(Unknown Source)
> at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> {code}
>  Note: Problem occurs regardless of whether classes are dynamic or static 
> compiled. The '$' in the names has no effect, a letter in its place has same 
> problem. The extending class does not have this problem. A stand alone class 
> also does not have this problem. If the setter is public or protected, the 
> problem goes away. Private getters do not display the problem.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to