Key: |
QB-2796
|
Type: |
Bug
|
Status: |
Resolved
|
Resolution: |
Fixed
|
Priority: |
Blocker
|
Assignee: |
Unassigned
|
Reporter: |
AlSt
|
Votes: |
0
|
Watchers: |
0
|
If you were logged in you would be able to see more operations.
|
|
|
QuickBuild
Created: 31/Aug/16 09:14 AM
Updated: 03/Sep/16 01:43 PM
|
|
Component/s: |
None
|
Affects Version/s: |
5.1.40
|
Fix Version/s: |
6.1.24
|
|
Original Estimate:
|
Unknown
|
Remaining Estimate:
|
Unknown
|
Time Spent:
|
Unknown
|
|
Builds requests can not be processed because of this exception:
jvm 1 | java.lang.IllegalArgumentException: Comparison method violates its general contract!
jvm 1 | at java.util.ComparableTimSort.mergeLo(ComparableTimSort.java:714)
jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:451)
jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:376)
jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:182)
jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
jvm 1 | at java.util.Arrays.sort(Arrays.java:472)
jvm 1 | at java.util.Collections.sort(Collections.java:155)
jvm 1 | at com.pmease.quickbuild.model.Build.getChanges(Build.java:621)
jvm 1 | at com.pmease.quickbuild.plugin.tracker.core.contribution.IssuesBuildListener.buildFinished(IssuesBuildListener.java:45)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.run(DefaultBuildEngine.java:660)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.process(DefaultBuildEngine.java:383)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.access$000(DefaultBuildEngine.java:131)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine$2.run(DefaultBuildEngine.java:1076)
jvm 1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:262)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
jvm 1 | at java.lang.Thread.run(Thread.java:745)
When looking at ChangeSet.compareTo(ChangeSet) the problem can be seen pretty fast:
@Override
public int compareTo(Changeset other) {
if (getDate() == null)
return 1;
else if (other.getDate() == null)
return -1;
else
return other.getDate().compareTo(getDate());
}
When both changeset dates are null they are not considered equal, so the transitivity is not satisfied.
|
Description
|
Builds requests can not be processed because of this exception:
jvm 1 | java.lang.IllegalArgumentException: Comparison method violates its general contract!
jvm 1 | at java.util.ComparableTimSort.mergeLo(ComparableTimSort.java:714)
jvm 1 | at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:451)
jvm 1 | at java.util.ComparableTimSort.mergeCollapse(ComparableTimSort.java:376)
jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:182)
jvm 1 | at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
jvm 1 | at java.util.Arrays.sort(Arrays.java:472)
jvm 1 | at java.util.Collections.sort(Collections.java:155)
jvm 1 | at com.pmease.quickbuild.model.Build.getChanges(Build.java:621)
jvm 1 | at com.pmease.quickbuild.plugin.tracker.core.contribution.IssuesBuildListener.buildFinished(IssuesBuildListener.java:45)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.run(DefaultBuildEngine.java:660)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.process(DefaultBuildEngine.java:383)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine.access$000(DefaultBuildEngine.java:131)
jvm 1 | at com.pmease.quickbuild.DefaultBuildEngine$2.run(DefaultBuildEngine.java:1076)
jvm 1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
jvm 1 | at java.util.concurrent.FutureTask.run(FutureTask.java:262)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
jvm 1 | at java.lang.Thread.run(Thread.java:745)
When looking at ChangeSet.compareTo(ChangeSet) the problem can be seen pretty fast:
@Override
public int compareTo(Changeset other) {
if (getDate() == null)
return 1;
else if (other.getDate() == null)
return -1;
else
return other.getDate().compareTo(getDate());
}
When both changeset dates are null they are not considered equal, so the transitivity is not satisfied. |
Show » |
|