EDQ Process Failed: Comparison Method Violates Its General Contract! while running a Group and Merge processor (Doc ID 2241096.1)

Last updated on MARCH 13, 2017

Applies to:

Oracle Enterprise Data Quality - Version 12.2.1 to 12.2.1.2.0 [Release 12]
Information in this document applies to any platform.
Java version is 1.8.0_112

Symptoms

On EDQ 12.2.1.0.0,

When the customer tries to run a process containing a Group and Merge processor, the process fails with the below error 

java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:899)
at java.util.TimSort.mergeAt(TimSort.java:516)
at java.util.TimSort.mergeCollapse(TimSort.java:441)
at java.util.TimSort.sort(TimSort.java:245)
at java.util.Arrays.sort(Arrays.java:1512)
at java.util.ArrayList.sort(ArrayList.java:1454)
at java.util.Collections.sort(Collections.java:175)
at com.datanomic.director.selectiongadgets.MostCommonValue.calculate(MostCommonValue.java:118)
at com.datanomic.director.match.runtime.gadgets.OutputSelectionHandler.select(OutputSelectionHandler.java:221)
at com.datanomic.director.match.runtime.engines.output.MiniMerge.constructRecord(MiniMerge.java:105)
at com.datanomic.director.match.runtime.engines.output.MergeHandler.processGroup(MergeHandler.java:477)
at com.datanomic.director.match.runtime.engines.output.OutputEngine.generateOutput(OutputEngine.java:250)
at com.datanomic.director.match.runtime.engines.output.OutputEngine.process(OutputEngine.java:190)
at com.datanomic.director.match.runtime.BatchHandler.runEngine(BatchHandler.java:226)
at com.datanomic.director.match.runtime.BatchHandler.doOutput(BatchHandler.java:352)
at com.datanomic.director.match.runtime.BatchHandler.matchClusteredRecords(BatchHandler.java:178)
at com.datanomic.director.match.munger.MatchBatchExecutor.doTheStuff(MatchBatchExecutor.java:277)
at com.datanomic.director.runtime.engine.RuntimeProcessMunger$MungerExecutable.execute(RuntimeProcessMunger.java:878)
at com.datanomic.utils.execution.Parallelizer$Worker.run(Parallelizer.java:209)
at com.datanomic.utils.execution.Parallelizer$Worker.runHere(Parallelizer.java:155)
at com.datanomic.utils.execution.Parallelizer.run(Parallelizer.java:84)
at com.datanomic.director.runtime.engine.RuntimeProcessMunger.execute(RuntimeProcessMunger.java:457)
at com.datanomic.utils.execution.Parallelizer$Worker.run(Parallelizer.java:209)
at com.datanomic.utils.execution.Parallelizer$Worker.runHere(Parallelizer.java:155)
at com.datanomic.utils.execution.Parallelizer.run(Parallelizer.java:84)
at com.datanomic.director.runtime.engine.RuntimeProcessCloud.execute(RuntimeProcessCloud.java:940)
at com.datanomic.director.runtime.coordination.BasicExecutionCoordinator.run(BasicExecutionCoordinator.java:130)
at com.datanomic.director.runtime.coordination.AbstractExecutionCoordinator.execute(AbstractExecutionCoordinator.java:166)
at com.datanomic.director.runtime.engine.jobs.RuntimeProcessJob.runTask(RuntimeProcessJob.java:484)
at com.datanomic.director.missionmanager.executor.ThreadResources.ThreadConstrainedWorkUnit$TaskWrapper.run(ThreadConstrainedWorkUnit.java:424)
at java.lang.Thread.run(Thread.java:745)



Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms