XMLGregorianCalendar error at black scrambling

24 views
Skip to first unread message

Slawek H

unread,
Dec 28, 2018, 3:57:45 AM12/28/18
to equalsverifier
Hi Jan,

I faced an issue when testing class with XMLGregorianCalendar attribute:

java.lang.AssertionError: EqualsVerifier found a problem in class Sample.
-> javax.xml.datatype.XMLGregorianCalendar.compare(Ljavax/xml/datatype/XMLGregorianCalendar;)I

For more information, go to: http://www.jqno.nl/equalsverifier/errormessages

    at nl
.jqno.equalsverifier.EqualsVerifierApi.verify(EqualsVerifierApi.java:308)
    at equalsverifier
.EqualsVerifierTest.equalsContract(EqualsVerifierTest.java:37)
    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:498)
    at org
.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:594)
    at org
.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:115)
    at org
.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:174)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:170)
    at org
.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:117)
    at org
.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:61)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:130)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:120)
    at org
.junit.platform.engine.support.hierarchical.Node.around(Node.java:134)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:118)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:117)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:79)
    at java
.util.ArrayList.forEach(ArrayList.java:1257)
    at org
.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:134)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:120)
    at org
.junit.platform.engine.support.hierarchical.Node.around(Node.java:134)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:118)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:117)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:79)
    at java
.util.ArrayList.forEach(ArrayList.java:1257)
    at org
.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:134)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:120)
    at org
.junit.platform.engine.support.hierarchical.Node.around(Node.java:134)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:118)
    at org
.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:117)
    at org
.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:79)
    at org
.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
    at org
.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org
.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
    at org
.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
    at org
.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
    at org
.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
    at org
.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
    at org
.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at com
.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74)
    at com
.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com
.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com
.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.AbstractMethodError: javax.xml.datatype.XMLGregorianCalendar.compare(Ljavax/xml/datatype/XMLGregorianCalendar;)I
    at javax
.xml.datatype.XMLGregorianCalendar.equals(XMLGregorianCalendar.java:692)
    at nl
.jqno.equalsverifier.internal.prefabvalues.PrefabValues.giveOther(PrefabValues.java:117)
    at nl
.jqno.equalsverifier.internal.reflection.FieldAccessor.lambda$changeField$2(FieldAccessor.java:200)
    at nl
.jqno.equalsverifier.internal.reflection.FieldAccessor.modify(FieldAccessor.java:215)
    at nl
.jqno.equalsverifier.internal.reflection.FieldAccessor.changeField(FieldAccessor.java:199)
    at nl
.jqno.equalsverifier.internal.reflection.ObjectAccessor.scramble(ObjectAccessor.java:143)
    at nl
.jqno.equalsverifier.internal.reflection.ClassAccessor.getBlackAccessor(ClassAccessor.java:203)
    at nl
.jqno.equalsverifier.internal.reflection.ClassAccessor.getBlackObject(ClassAccessor.java:189)
    at nl
.jqno.equalsverifier.internal.util.Configuration.ensureUnequalExamples(Configuration.java:126)
    at nl
.jqno.equalsverifier.internal.util.Configuration.build(Configuration.java:69)
    at nl
.jqno.equalsverifier.EqualsVerifierApi.buildConfig(EqualsVerifierApi.java:354)
    at nl
.jqno.equalsverifier.EqualsVerifierApi.performVerification(EqualsVerifierApi.java:346)
    at nl
.jqno.equalsverifier.EqualsVerifierApi.verify(EqualsVerifierApi.java:302)
   
... 52 more

(Sample.java and test are attached)

Could you take a look at it, please?

This is 3.1.2 version

thanks in advance,
slawek



Sample.java
EqualsVerifierTest.java

Jan Ouwens

unread,
Dec 28, 2018, 8:35:45 AM12/28/18
to equalsv...@googlegroups.com
Hi Slawek,

If you run the test like this, it should work:

XMLGregorianCalendar xmlGregorianCalendar1 = XMLGregorianCalendarImpl.createDate(2018, 12, 28, FIELD_UNDEFINED);
XMLGregorianCalendar xmlGregorianCalendar2 = XMLGregorianCalendarImpl.createDate(2018, 12, 29, FIELD_UNDEFINED);
EqualsVerifier.forClass(Sample.class)
.withPrefabValues(XMLGregorianCalendar.class, xmlGregorianCalendar1, xmlGregorianCalendar2)
.verify();

Cheers,
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.

Slawek H

unread,
Jan 3, 2019, 12:08:37 PM1/3/19
to equalsverifier

It works, thanks!
Reply all
Reply to author
Forward
0 new messages