Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 231349 - Shared installs on the Mac cause IllegalArgumentException
Summary: Shared installs on the Mac cause IllegalArgumentException
Status: RESOLVED WORKSFORME
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: 3.4   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 normal (vote)
Target Milestone: 3.4 RC1   Edit
Assignee: Pascal Rapicault CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-09 14:16 EDT by Jason Madden CLA
Modified: 2008-05-13 17:13 EDT (History)
4 users (show)

See Also:


Attachments
The read-only eclipse config.ini (753 bytes, text/plain)
2008-05-09 17:54 EDT, Jason Madden CLA
no flags Details
The per-user config.ini, from ~/.eclipse/org.eclipse.platform_3.3.0_757481938/configuration/config.ini (1.13 KB, text/plain)
2008-05-09 17:56 EDT, Jason Madden CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Madden CLA 2008-05-09 14:16:20 EDT
Build ID: I20080502-0100

Steps To Reproduce:
1) Make the fresh eclipse install directory read-only.
2) Launch eclipse. Use the update manager to install a plugin (such as
Subclipse, say). Notice the plugin was installed in ~/.eclipse/ as expected.
3) Restart eclipse. Notice that it fails to launch:


More information:
!SESSION 2008-05-09 12:08:17.879
-----------------------------------------------
eclipse.buildId=I20080502-0100
java.version=1.5.0_13
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=carbon, NL=en_GB
Command-line arguments:  -os macosx -ws carbon -arch x86 -consoleLog

!ENTRY org.eclipse.osgi 4 0 2008-05-09 12:08:18.554
!MESSAGE Startup error
!STACK 1
java.lang.IllegalArgumentException: Bundle
"reference:file:plugins/org.eclipse.core.runtime_3.4.0.v20080421-1805.jar" has
been uninstalled
at
org.eclipse.osgi.framework.internal.core.StartLevelManager.getBundleStartLevel(StartLevelManager.java:371)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.ensureBundlesActive(EclipseStarter.java:439)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:328)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
Comment 1 Simon Kaegi CLA 2008-05-09 14:36:17 EDT
I can confirm the pb on the Mac... just saw it on Kim's machine.
Comment 2 Thomas Watson CLA 2008-05-09 17:26:09 EDT
(In reply to comment #0)
> Build ID: I20080502-0100
> 
> Steps To Reproduce:
> 1) Make the fresh eclipse install directory read-only.
> 2) Launch eclipse. Use the update manager to install a plugin (such as
> Subclipse, say). Notice the plugin was installed in ~/.eclipse/ as expected.
> 3) Restart eclipse. Notice that it fails to launch:
> 

"Use the update manager"  Is this using p2 or old update manager?  It appears you are using old update because in p2 org.eclipse.core.runtime is not contained on the osgi.bundles list in the config.ini.  Somehow update (or p2?) uninstalled org.eclipse.core.runtime which was installed by the bootstrap code (EclipseStarter).
Comment 3 Jason Madden CLA 2008-05-09 17:32:54 EDT
(In reply to comment #2)

> "Use the update manager"  Is this using p2 or old update manager?  It appears
> you are using old update because in p2 org.eclipse.core.runtime is not
> contained on the osgi.bundles list in the config.ini.  Somehow update (or p2?)
> uninstalled org.eclipse.core.runtime which was installed by the bootstrap code
> (EclipseStarter).

I was using p2, AFAIK. The dialog was definitely the new-style dialog that first showed up in M6. It was a fresh install, so the config.ini was stock, and I hadn't done anything to enable the classic update capability.
 

Comment 4 Thomas Watson CLA 2008-05-09 17:45:41 EDT
Jason, can you post the contents of your configuration/config.ini in your eclipse install (read-only location) and from your ~/.eclipse/ location?  If using p2 the org.eclipse.core.runtime bundle should not be installed by EclipseStarter at all.
Comment 5 Jason Madden CLA 2008-05-09 17:54:26 EDT
Created attachment 99576 [details]
The read-only eclipse config.ini

The read-only config.ini from the shared eclipse install
Comment 6 Jason Madden CLA 2008-05-09 17:56:02 EDT
Created attachment 99578 [details]
The per-user config.ini, from ~/.eclipse/org.eclipse.platform_3.3.0_757481938/configuration/config.ini

The per-user config.ini, from ~/.eclipse/org.eclipse.platform_3.3.0_757481938/configuration/config.ini. Added after installing a plugin and getting the error in this report.
Comment 7 Thomas Watson CLA 2008-05-09 18:02:39 EDT
Moving to p2.  Pascal, I think this bug is related to the shared install issues we discussed about the merging of config.ini files.  The config.ini from the shared configuration has a wacky osgi.bundles property ...

osgi.bundles=reference\:file\:org.eclipse.equinox.launcher_1.0.100.v20080501.jar,reference\:file\:org.eclipse.equinox.launcher.carbon.macosx_1.0.100.v20080428-1330/,reference\:file\:org.eclipse.update.configurator_3.2.200.v20080417.jar,reference\:file\:org.eclipse.core.runtime_3.4.0.v20080421-1805.jar@\:start,reference\:file\:org.eclipse.equinox.p2.reconciler.dropins_1.0.0.v20080501-1800.jar@\:start,reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.0.v20080428-1800.jar@1\:start

I'm not sure why they all got added there.
Comment 8 Thomas Watson CLA 2008-05-09 18:09:53 EDT
(In reply to comment #6)
> Created an attachment (id=99578) [details]
> The per-user config.ini, from
> ~/.eclipse/org.eclipse.platform_3.3.0_757481938/configuration/config.ini
> 
> The per-user config.ini, from
> ~/.eclipse/org.eclipse.platform_3.3.0_757481938/configuration/config.ini. Added
> after installing a plugin and getting the error in this report.
> 

The .eclipseproduct file included with the SDK is out of date.  This is causing the org.eclipse.platform_3.3.0 directory to be created (it should be 3.4.0).  I opened bug 231394 to fix that.
Comment 9 Pascal Rapicault CLA 2008-05-13 17:13:31 EDT
This problem has been fixed in RC1 by various works to better handle shared installs. I have confirmed that it is working with yesterday's I build.