NullPointerException running equals verifier on a class.

49 views
Skip to first unread message

Chris Stoner

unread,
Feb 24, 2016, 3:35:59 AM2/24/16
to equalsverifier
I'm having the following Exception when running the verifier:

java.lang.AssertionError: java.lang.NullPointerException: 

at nl.jqno.equalsverifier.EqualsVerifier.handleError(EqualsVerifier.java:406)
at nl.jqno.equalsverifier.EqualsVerifier.verify(EqualsVerifier.java:392)
at com.ge.hc.lcs.sumfutil.asc.UmfDeviceImplTest.equalsVerifier(UmfDeviceImplTest.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.NullPointerException
at com.rti.dds.util.Enum.equals(Unknown Source)
at nl.jqno.equalsverifier.util.PrefabValues.getOther(PrefabValues.java:138)
at nl.jqno.equalsverifier.util.FieldAccessor$FieldChanger.modify(FieldAccessor.java:272)
at nl.jqno.equalsverifier.util.FieldAccessor.modify(FieldAccessor.java:163)
at nl.jqno.equalsverifier.util.FieldAccessor.changeField(FieldAccessor.java:153)
at nl.jqno.equalsverifier.util.ObjectAccessor.scramble(ObjectAccessor.java:153)
at nl.jqno.equalsverifier.util.ClassAccessor.getRedAccessor(ClassAccessor.java:261)
at nl.jqno.equalsverifier.util.ClassAccessor.getRedObject(ClassAccessor.java:251)
at nl.jqno.equalsverifier.util.PrefabValues.createAndPutInstances(PrefabValues.java:243)
at nl.jqno.equalsverifier.util.PrefabValues.putFor(PrefabValues.java:197)
at nl.jqno.equalsverifier.util.PrefabValues.putFor(PrefabValues.java:173)
at nl.jqno.equalsverifier.util.FieldAccessor.createPrefabValues(FieldAccessor.java:194)
at nl.jqno.equalsverifier.util.FieldAccessor.access$300(FieldAccessor.java:28)
at nl.jqno.equalsverifier.util.FieldAccessor$FieldChanger.modify(FieldAccessor.java:276)
at nl.jqno.equalsverifier.util.FieldAccessor.modify(FieldAccessor.java:163)
at nl.jqno.equalsverifier.util.FieldAccessor.changeField(FieldAccessor.java:153)
at nl.jqno.equalsverifier.util.ObjectAccessor.scramble(ObjectAccessor.java:153)
at nl.jqno.equalsverifier.util.ClassAccessor.getRedAccessor(ClassAccessor.java:261)
at nl.jqno.equalsverifier.util.ClassAccessor.getRedObject(ClassAccessor.java:251)
at nl.jqno.equalsverifier.AbstractDelegationChecker.check(AbstractDelegationChecker.java:49)
at nl.jqno.equalsverifier.EqualsVerifier.verifyWithoutExamples(EqualsVerifier.java:428)
at nl.jqno.equalsverifier.EqualsVerifier.performVerification(EqualsVerifier.java:416)
at nl.jqno.equalsverifier.EqualsVerifier.verify(EqualsVerifier.java:386)
... 27 more


The class in question is fairly simple, I even stripped all of the logic out of it and ran I'm still having the same issue.


Jan Ouwens

unread,
Feb 24, 2016, 3:37:33 AM2/24/16
to equalsv...@googlegroups.com, Chris Stoner
Hi Chris,

Can you show me the class that causes this problem? Also, how do you call EqualsVerifier?
The stacktrace doesn’t give me enough information to reproduce this problem.


Jan
--
You received this message because you are subscribed to the Google Groups "equalsverifier" group.
To unsubscribe from this group and stop receiving emails from it, send an email to equalsverifie...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Chris Stoner

unread,
Feb 24, 2016, 8:22:11 AM2/24/16
to equalsverifier
Class and Interface in question are attached.


Junit Call:

    @Test
    public void equalsVerifier() {
        EqualsVerifier.forClass(UmfDeviceImpl.class).usingGetClass()
                .suppress(Warning.NULL_FIELDS)
                .suppress(Warning.STRICT_INHERITANCE)
                .verify();
UmfDevice.java
UmfDeviceImpl.java

Jan Ouwens

unread,
Feb 24, 2016, 10:46:47 AM2/24/16
to equalsv...@googlegroups.com
Hi Chris,

Thanks for the example code. Unfortunately, it contains a lot of types that I don’t know the definition of, so I can’t actually run it and see what’s going on.

A closer look at the stacktrace showed me this, though:

Caused by: java.lang.NullPointerException
at com.rti.dds.util.Enum.equals(Unknown Source)

In other words, the exception is actually thrown from code that’s not part of EqualsVerifier. I’m not sure what it is. Maybe it’s your code, or maybe it comes from a library that you use. Do you have the source for it?

I’m guessing it may be a superclass for an enum type that you have in your code; maybe UmfTopicEnum.


Jan
--
You received this message because you are subscribed to the Google Groups "equalsverifier" group.
To unsubscribe from this group and stop receiving emails from it, send an email to equalsverifie...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages