[
https://issues.apache.org/jira/browse/GROOVY-9522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17091256#comment-17091256
]
Daniel Sun commented on GROOVY-9522:
------------------------------------
You can avoid ambiguities via parentheses:
{code:java}
def x = a() ? ([b(), a()].join(',')) : b()
{code}
P.S. {{?[....]}} is introduced since 3.0.0 as safe indexing, which introduces
some ambiguities too.
> Throwing NPE when I use ternary operator with something special
> ---------------------------------------------------------------
>
> Key: GROOVY-9522
> URL: https://issues.apache.org/jira/browse/GROOVY-9522
> Project: Groovy
> Issue Type: Bug
> Components: parser
> Affects Versions: 3.0.3
> Environment: Win10/MacOS
> Zulu OpenJDK 11
> Reporter: Huabin Zhang
> Priority: Critical
>
> Hi, I got NPE instead of empty string when I wrote the following snippet:
>
> {code:java}
> static String a() {
> null
> }
> static String b() {
> ''
> }
> def x = a() ? [b(), a()].join(',') : b() // NPE
> //def x = a() ? [b(), a()] : b() // OK
> //def x = a() ? ([b(), a()]).join(',') : b() // OK
> x == ''
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)