[ https://issues.apache.org/jira/browse/GROOVY-7639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14985886#comment-14985886 ]
Shil Sinha commented on GROOVY-7639: ------------------------------------ I don't seem to have the jira rights to resolve this, but it should be fixed. > NPE when using safe traversal operator with CompileStatic > --------------------------------------------------------- > > Key: GROOVY-7639 > URL: https://issues.apache.org/jira/browse/GROOVY-7639 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 2.4.5 > Reporter: Ben Podoll > > In the code below, the "if" condition throws a NPE when it reaches the "p3" > object. If I remove the @CompileStatic from the "SomeOther" class it works. > {code:java} > import groovy.transform.CompileStatic > @CompileStatic > class Person { > String name > OtherInfo otherInfo > } > @CompileStatic > class OtherInfo { > int favoriteNumber > } > @CompileStatic > class SomeOther { > SomeOther() { > Person p1 = new Person(name: 'Ben', otherInfo: new > OtherInfo(favoriteNumber: 1)) > Person p2 = new Person(name: 'Aaron', otherInfo: new OtherInfo()) > Person p3 = new Person(name: 'Fred') > [p1,p2,p3].each { Person p -> > println "checking: ${p.name}" > println p?.otherInfo?.favoriteNumber > if(p?.otherInfo?.favoriteNumber == 7){ > println "luckiest number!" > } > } > } > } > new SomeOther() > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)