[
https://issues.apache.org/jira/browse/GROOVY-9367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Milles resolved GROOVY-9367.
---------------------------------
Fix Version/s: 5.0.0-alpha-3
Resolution: Fixed
https://github.com/apache/groovy/commit/175c0e6f05ff6c6ef9612e0a7b4605e45adb6fa0
> org.codehaus.groovy.runtime.MetaClassHelper#getClassWithNullAndWrapper should
> return NullObject when accept null
> ----------------------------------------------------------------------------------------------------------------
>
> Key: GROOVY-9367
> URL: https://issues.apache.org/jira/browse/GROOVY-9367
> Project: Groovy
> Issue Type: Bug
> Components: groovy-runtime
> Affects Versions: 2.5.6
> Reporter: XJ Chen
> Assignee: Eric Milles
> Priority: Major
> Fix For: 5.0.0-alpha-3
>
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> I have a extension class
> {code:java}
> class NumberExtension {
> static Integer plus(Integer self, NullObject right) {
> return self;
> }
> }
> {code}
> However
> {code:java}1 + null{code}
> will throw
> {code}
> Ambiguous method overloading for method java.lang.Integer#plus
> {code}
> Because
> org.codehaus.groovy.runtime.MetaClassHelper#getClassWithNullAndWrapper return
> null for null argument. Then
> org.codehaus.groovy.runtime.MetaClassHelper#calculateParameterDistance(java.lang.Class,
> org.codehaus.groovy.reflection.CachedClass) doesn't return 0 because null !=
> NullObject.class
--
This message was sent by Atlassian Jira
(v8.20.10#820010)