Failing test passes because of NPE
GoogleCodeExporter opened this issue · comments
Google Code Exporter commented
If a mock argument produces NPE on equals(), then test passes well in IDEA,
invocations number is not checked, object equivalence is not checked
When running from gradle, gradle is stuck with stack trace in a console
:bl:test
Unexpected exception thrown.
org.gradle.messaging.remote.internal.MessageIOException: Could not write
message [ChannelMessage channel: org.gradle.api
.internal.tasks.testing.TestResultProcessor, payload: [MethodInvocation method:
failure()]] to '/127.0.0.1:3636'.
at org.gradle.messaging.remote.internal.inet.SocketConnection.dispatch(SocketConnection.java:115)
at org.gradle.messaging.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.java:279)
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java
:66)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException: Cannot invoke method hashCode() on
null object
at org.codehaus.groovy.runtime.NullObject.hashCode(NullObject.java:160)
at org.codehaus.groovy.runtime.NullObject$hashCode.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at com.salespredict.test.MyObject.hashCode(MyObject.groovy:24)
at java.util.AbstractList.hashCode(AbstractList.java:541)
at org.spockframework.mock.runtime.MockInvocation.hashCode(MockInvocation.java:93)
at java.util.HashMap.hash(HashMap.java:366)
at java.util.HashMap.put(HashMap.java:496)
at org.spockframework.util.AbstractMultiset.add(AbstractMultiset.java:40)
at org.spockframework.util.AbstractMultiset.addAll(AbstractMultiset.java:74)
at org.spockframework.util.HashMultiset.<init>(HashMultiset.java:18)
at org.spockframework.mock.TooFewInvocationsError.getMessage(TooFewInvocationsError.java:46)
at org.gradle.messaging.remote.internal.Message$ExceptionPlaceholder.<init>(Message.java:74)
at org.gradle.messaging.remote.internal.Message$TopLevelExceptionPlaceholder.<init>(Message.java:138)
at org.gradle.messaging.remote.internal.Message$TopLevelExceptionPlaceholder.<init>(Message.java:136)
at org.gradle.messaging.remote.internal.Message$ExceptionReplacingObjectOutputStream.replaceObject(Message.java:
151)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1143)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1377)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1173)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at org.gradle.messaging.remote.internal.Message.send(Message.java:29)
at org.gradle.messaging.serialize.kryo.JavaSerializer$JavaWriter.write(JavaSerializer.java:62)
at org.gradle.messaging.remote.internal.hub.MethodInvocationSerializer$MethodInvocationWriter.writeArguments(Met
See sources attached
What version of Spock and Groovy are you using?
spock-core:0.7-groovy-2.0
groovy-all-2.0.5
Original issue reported on code.google.com by jav...@gmail.com
on 18 Jun 2014 at 8:14
Attachments: