groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Hammer (JIRA)" <>
Subject [jira] [Created] (GROOVY-8200) Shorthand |= results in NPE
Date Tue, 23 May 2017 12:55:04 GMT
Daniel Hammer created GROOVY-8200:

             Summary: Shorthand |= results in NPE
                 Key: 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:

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

View raw message