[ https://issues.apache.org/jira/browse/GROOVY-7639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14972500#comment-14972500 ]
Jochen Theodorou commented on GROOVY-7639: ------------------------------------------ I suggest you change the tests to check for the boxed variant as part of this fix. If there will be more tests failing as a result of this, we can discuss further > 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)