Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.0.7
-
None
-
None
Description
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:
❯ 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)
As a work around the method call to foo() can explicitly be prefixed with `super.`