vazexqi / CodingSpectator

Watches and analyzes code edits in the Eclipse IDE non-invasively
http://codingspectator.cs.illinois.edu
Other
20 stars 14 forks source link

Can't install on some instances of Eclipse Indigo (Mac) #208

Open vazexqi opened 13 years ago

vazexqi commented 13 years ago

Participant cs-104 has trouble installing CodingSpectator on Indigo M7. Eclipse says that CodingSpectator is installed but neither the preference pane nor the uploader is available.

I was able to install CodingSpectator on a clean instance of Indigo M7 so I suspect that some plug-in is causing an issue. I'm going to get a list of installed plug-ins from participant cs-104 to see what is wrong.

vazexqi commented 13 years ago

More detailed symptoms of the problem:

  1. Java perspective disappeared completely.
  2. Eclipse says that CodingSpectator is installed but I can't find any inklings of it. There wasn't a preference page or the uploading dialog.

Participant cs-104 was using a 32-bit version of Eclipse on a Mac that had Java 1.6 (64-bit) installed. We managed to solve the problem by installing a 64-bit version of Eclipse.

I am still not sure why CodingSpectator was able to bring out this error. The participant had other plug-ins installed but they did not cause this problem. I am not aware of how CodingSpectator uses 64-bit. Did we specify that we require a 64-bit environment? I know that we specify that we use Java-1.6

vazexqi commented 13 years ago

I can reproduce this problem on my older Mac running OS X 10.5. I believe that this issue is related to the fact that CodingSpectator requires Java 1.6 and that version is unavailable on some machines (32-bit or 64-bit). When that happens, CodingSpectator cannot run. And because we patch JDT, JDT also cannot run.

The original version of JDT only requires Java 1.4

Proposed solution: lower the requirements of CodingSpectator to Java 1.5 if we discover that a lot of other participants are having this problem.

reprogrammer commented 13 years ago

I don't know where the dependency on 64-bit Eclipse comes from. It might be a dependency of JDT that CodingSpectator has inherited. Again, I don't know why JDT might have such a dependency.

vazexqi commented 13 years ago

I think there isn't a dependency on 64-bit Eclipse. The dependency is on a Java-1.6 VM. On participant cs-104's machine, there were these JVMS:

Because participant cs-104 downloaded Eclipse Indigo 3.7M7 for 32-bit JVM, Mac OS X must have chosen to use the only 32-bit option JVM available i.e. Java 1.5. However, this would be a problem because we specifically said that CodingSpectator requires Java-1.6.

I wonder why Eclipse does not perform this check when it is installing CodingSpectator to ensure that Java-1.6 is available and that it is being used to run the installation of Eclipse that the user wants to install CodingSpectator into.

If we want to do more testing, I suggest that you try this with a machine that has both Java 1.5 and Java 1.6 installed. Then try starting Eclipse+CodingSpectator with the Java 1.5 runtime to see what happens. And repeat with Java 1.6.

reprogrammer commented 13 years ago

That makes sense. We should be able to lower the dependency to Java 1.5.

Wanderer777 commented 13 years ago

CodingTracker uses class Properties to keep track of the known files. This class is thread-safe only starting with Java 1.6. So, we either keep Java 1.6, or if we lower the dependency to Java 1.5, we would need to make Properties thread-safe externally.