You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Benedikt Ritter (Jira)" <ji...@apache.org> on 2021/04/23 09:16:00 UTC

[jira] [Commented] (GROOVY-9982) Can't assign a field with the result of a method call of the same name from a base class

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

Benedikt Ritter commented on GROOVY-9982:
-----------------------------------------

It looks like we found some kind of variation of this that can only be reproduced with Spock. I've therefore created an issue on their bug tracker the find out whether it's maybe a problem in Spock: {color:#1d1c1d} {color}[https://github.com/spockframework/spock/issues/1313]

> Can't assign a field with the result of a method call of the same name from a base class
> ----------------------------------------------------------------------------------------
>
>                 Key: GROOVY-9982
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9982
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 3.0.7
>            Reporter: Benedikt Ritter
>            Assignee: Eric Milles
>            Priority: Major
>             Fix For: 2.5.15, 3.0.8, 4.0.0-alpha-3
>
>         Attachments: test.groovy
>
>
> Having a method in a base class and using that method in an assignment in an inheriting class to assign a field of the same name as that method causes a NullPointerException.
> Try executing the attached script with Groovy 3.0.7. It will yield:
> {code:java}
> ❯ groovy test.groovy
> Caught: java.lang.NullPointerException
> java.lang.NullPointerException
> 	at Child.setup(test.groovy:11)
> 	at Child$setup.call(Unknown Source)
> 	at test.run(test.groovy:16)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> {code}
> As a work around the method call to foo() can explicitly be prefixed with `super.`



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