[ https://issues.apache.org/jira/browse/GROOVY-8200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-8200. ----------------------------- > 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 > Assignee: Paul King > Priority: Major > Fix For: 2.5.0-beta-2 > > Attachments: shorthand_and.groovy, shorthand_or_symptom.groovy, > shorthand_xor_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 (v7.6.3#76005)