-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 8.17.0, 8.18.0, 8.19.0, 8.20.0
-
Component/s: DVCS Connector
-
None
-
8.17
-
Severity 3 - Minor
Issue Summary
If for some reason (i.e. some changes weren't properly rollback together with transaction) database will contains some commit duplicates there is a method which during sync process removes them and leave only one commit.
Steps to Reproduce
None because source of bug is not known yet.
Expected Results
This exception shouldn't be thrown.
Actual Results
The below exception is thrown:
java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.base/java.util.TimSort.mergeHi(TimSort.java:903) at java.base/java.util.TimSort.mergeAt(TimSort.java:520) at java.base/java.util.TimSort.mergeCollapse(TimSort.java:448) at java.base/java.util.TimSort.sort(TimSort.java:245) at java.base/java.util.Arrays.sort(Arrays.java:1515) at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:353) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at com.atlassian.jira.plugins.dvcs.dao.impl.ChangesetDaoImpl.removeDuplicates(ChangesetDaoImpl.java:166) at com.atlassian.jira.plugins.dvcs.dao.impl.ChangesetDaoImpl.createOrAssociate(ChangesetDaoImpl.java:155) at com.atlassian.jira.plugins.dvcs.dao.impl.querydsl.ChangesetDaoQueryDsl.createOrAssociate(ChangesetDaoQueryDsl.java:72) at com.atlassian.jira.plugins.dvcs.service.ChangesetServiceImpl.create(ChangesetServiceImpl.java:73) at com.atlassian.jira.plugins.dvcs.sync.MessageConsumerSupport.onReceive(MessageConsumerSupport.java:75) at com.atlassian.jira.plugins.dvcs.service.MessageExecutor$MessageRunnable.doRun(MessageExecutor.java:342) at com.atlassian.jira.plugins.dvcs.service.MessageExecutor$ReleaseTokenAndEnqueueNextMessage.run(MessageExecutor.java:256) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834)
Workaround
Currently there is no known workaround for this behavior. A workaround will be added here when available