Thomas created GROOVY-7518:
------------------------------

             Summary: hashCode() throws NPE when using @CompileStatic with 
@EqualsAndHashCode
                 Key: GROOVY-7518
                 URL: https://issues.apache.org/jira/browse/GROOVY-7518
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.4.4
            Reporter: Thomas


Given the following class

{code:title=Person.groovy}
import groovy.transform.CompileStatic
import groovy.transform.EqualsAndHashCode

@EqualsAndHashCode
@CompileStatic
class Person {
        Long someLong
}
{code}

and the test

{code:title=PersonTest.groovy}
import static org.junit.Assert.*

import org.junit.Test

class PersonTest {

        @Test
        void hashcodeWithoutLongValue() {
                def person = new Person()
                assert person.hashCode()
        }
}
{code}

and the gradle configuration:

{code:title=build.gradle}
buildscript {
    repositories {
        mavenCentral()
    }
}

apply plugin: 'groovy'
apply plugin: 'eclipse'

jar {
    baseName = 'HashCodeNPE'
    version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile("org.codehaus.groovy:groovy:2.4.4")
        testCompile("junit:junit:4.12")
}


eclipse {
    classpath {
         containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
         containers 
'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '2.4'
}
{code}

when I run {code}gradle clean build{code}

then the test fails with the following message.

{code}
PersonTest > hashcodeWithoutLongValue FAILED
    java.lang.NullPointerException at PersonTest.groovy:10

1 test completed, 1 failed
:test FAILED
{code}

With Groovy 2.4.3 the test passes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to