You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Daniel Hammer (JIRA)" <ji...@apache.org> on 2017/05/23 12:55:04 UTC
[jira] [Created] (GROOVY-8200) Shorthand |= results in NPE
Daniel Hammer created GROOVY-8200:
-------------------------------------
Summary: Shorthand |= results in NPE
Key: GROOVY-8200
URL: https://issues.apache.org/jira/browse/GROOVY-8200
Project: Groovy
Issue Type: Bug
Affects Versions: 2.3.11
Environment: Groovy Version: 2.3.11 JVM: 1.7.0_80 Vendor: Oracle Corporation OS: Linux
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
Reporter: Daniel Hammer
Attachments: shorthand_and.groovy, shorthand_or_symptom.groovy
I've stumbled across some curious behaviour for the shorthand assignment operator in Groovy v2.3.11 (symptom also present in Groovy v2.4.9).
The following [boolean or logic|^shorthand_or_symptom.groovy], unexpectedly throws {{NullPointerException}}.
{code}boolean x = null
// short hand unrolled: x = null || x
x |= null // -> unexpected NullPointerException
assert !x{code}
The same approach for [boolean and logic|^shorthand_and.groovy], performs as expected.
{code}boolean x = null
// short hand unrolled: x = null && x
x &= null
assert !x{code}
It's possible to work around the issue with explicit cast.
{code}x |= null as boolean{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)