Toby D
Toby D

Reputation: 1421

Error when trying to update Eclipse

I got an error when trying to update my Eclipse!

Here is the error log An internal error occurred during: "Install download 0"

java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) at java.util.ComparableTimSort.sort(ComparableTimSort.java:191) at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorSelector.hasValidMirror(MirrorSelector.java:319) at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.downloadArtifact(SimpleArtifactRepository.java:577) at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:680) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.getArtifact(MirrorRequest.java:260) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transferSingle(MirrorRequest.java:235) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.transfer(MirrorRequest.java:191) at org.eclipse.equinox.internal.p2.artifact.repository.MirrorRequest.perform(MirrorRequest.java:122) at org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepository.getArtifact(SimpleArtifactRepository.java:664) at org.eclipse.equinox.internal.p2.artifact.repository.simple.DownloadJob.run(DownloadJob.java:63) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Does any one know how to solve this problem?

Thanks

Upvotes: 2

Views: 1032

Answers (1)

Nokia808Freak
Nokia808Freak

Reputation: 921

This happened to me before and now i have Eclipse Juno Release and I don't come across such issues.

Possible Workarounds:
This error occurs because of a small bug in Eclipse when used with JDK >= 1.7
To resolve it, you can replace the JDK 1.7 by JDK 1.6 (Of-course changing the Environment variables, PATH, and such)
(OR)
Exit/Close any Active Eclipse IDE Window, Process,...
Then open the Eclipse Installation folder and examine the "eclipse.ini" file.
You might see some configuration entries that are required to initiate Eclipse IDE during startup
Now copy paste the (system property)entry below "-vmargs" in "eclipse.ini" file:

-Djava.util.Arrays.useLegacyMergeSort=true

Save it!
Now Open Eclipse and Perform Update and it should complete Normally.
Then You can remove the Line from the "eclipse.ini" configuration file.

I hope you won't get any such bugs in Eclipse Juno Release even with JDK 1.7.

Possible Root cause of the Problem: TimSort algorithm in JDK 1.7

reference: https://bugs.eclipse.org/bugs/show_bug.cgi?id=317785

Upvotes: 4

Related Questions