[ 
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)

Reply via email to