Installing Plug-ins under Indigo and JRE 1.7

As many of you may know, ECLIPSE 3.7 has been out for a while now. So has Java 7. What you may not know is that there is a problem with the ECLIPSE installer in 3.6 and 3.7.0 relating to Java 7. What happened is that Oracle made a change to Array.sort() in Java 7 that changes the way sort() works in a threading environment. You will find a discussion of what the ECLIPSE contributors have done relating to this problem here: https://bugs.eclipse.org/bugs/show_bug.cgi?id=317785.

The problem was further diagnosed as being: https://bugs.eclipse.org/bugs/show_bug.cgi?id=297805 with regards to Mirror Ranking.

So far, we have found two temporary solutions:

  1. For ECLIPSE 3.6.x to 3.7.0 is to modify the config.ini file found in the ECLIPSE configuration directory (eclipse/configuration/config.ini) to add the following parameter:
    -Djava.util.Arrays.useLegacyMergeSort=true
  2. Run ECLIPSE 3.6.x to 3.7.0 using the Java 6 JRE/JDK.
    Revisions 6_20 upward are acceptable to ECLIPSE. You can still build
    with the Java 7 JDK by configuring your compilers internally to
    ECLIPSE through Window/Preference.

This is of particular importance to NSDEE 2.x users who are limited to ECLIPSE 3.6.x with CDT 5.0.0. If you an NSDEE user, we suggest that you stay on Java 6 until you move to NSDEE 3.0 or NSDEE 4.0. [Note: this comment is obsolete]

The problem has been resolved for ECLIPSE 3.7.1. What we don’t know is whether there are any compatibility issues with NSDEE 3.0 and Java 7, although it is unlikely. The fix #1 above should work if there continues to be an issue after ECLIPSE 3.7.1. [Note: this comment is obsolete.]

Updated 21 Jan 2014: The problem continues to exist or has been reintroduced in Juno/Java 1.7.0_51 and has caused some items in this support note to be made obsolete.

Updated 20 Feb 2014: The problem with the installer appears to have been resolved under Kepler. See the updated support note for details.

Updated 25 Feb 2014: Not everyone may see this problem. The issue relates to threading, and is, as a result, timing sensitive.