Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » [PDE] Export fails on 3.6.1, upgraded application hangs
[PDE] Export fails on 3.6.1, upgraded application hangs [message #629841] Wed, 29 September 2010 17:37 Go to next message
Christophe Fondacci is currently offline Christophe Fondacci
Messages: 95
Registered: July 2009
Location: Paris
Member
Hello,

I have just finished migrating my RCP app from 3.5.2 to 3.6.1 today. In debug mode, everything works fine (and the overall performances seem better, by the way, great work!).

But now I have 2 problems :

1. Upgrading an already exported 3.5.2 based RCP app fails

I upgraded an existing version of my application which was 3.5.2 based from my update site. This upgrade downloads and installs everything perfectly well (with all the 3.6.1 new plugins). This is the method I used to do when integrating a new release of eclipse in my app and it always worked well.

After download and install from the update site, the update manager (i am not using p2) asks me to restart the application, as always. The application starts well but I can see that it is not using 3.6.1 (I see it because some SWT enhancements on cocoa are not visible).

After the workbench opens, it hangs and nothing is responding. The only option is to kill the app.

In the .log file, here is what I can find (each time I try to run it = same log) :
!SESSION 2010-09-29 17:39:07.688 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_20
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -keyring /Users/cfondacci/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/cfondacci/.eclipse_keyring -showlocation

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2010-09-29 17:39:08.668
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.equinox.internal.simpleconfigurator.Activator.start() of bundle org.eclipse.equinox.simpleconfigurator.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted to finalize the configuration change
	at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:71)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
	at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 11 more
Root exception:
java.lang.IllegalStateException: The System Bundle was updated. The framework must be restarted to finalize the configuration change
	at org.eclipse.equinox.internal.simpleconfigurator.ConfigApplier.install(ConfigApplier.java:71)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:129)
	at org.eclipse.equinox.internal.simpleconfigurator.SimpleConfiguratorImpl.applyConfiguration(SimpleConfiguratorImpl.java:143)
	at org.eclipse.equinox.internal.simpleconfigurator.Activator.start(Activator.java:48)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY org.eclipse.update.configurator 4 0 2010-09-29 17:39:08.686
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.update.internal.configurator.ConfigurationActivator.start() of bundle org.eclipse.update.configurator.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.Exception: Cannot initialize the Update Configurator
	at org.eclipse.update.internal.configurator.ConfigurationActivator.initialize(ConfigurationActivator.java:107)
	at org.eclipse.update.internal.configurator.ConfigurationActivator.start(ConfigurationActivator.java:68)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 11 more
Root exception:
java.lang.Exception: Cannot initialize the Update Configurator
	at org.eclipse.update.internal.configurator.ConfigurationActivator.initialize(ConfigurationActivator.java:107)
	at org.eclipse.update.internal.configurator.ConfigurationActivator.start(ConfigurationActivator.java:68)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY org.eclipse.osgi 4 0 2010-09-29 17:39:12.689
!MESSAGE Bundle org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503 [2755] is not active.



2. Trying to export the full product generates a corrupted / non working product

Now my second test was to export the product from scratch using the PDE export tool from the product editor. As I always do :
* I got the delta pack 3.6.1 installed and in my target config
* I got the "Generate a metadata repository" unchecked
* I got the "Export for multiple platforms" checked

The exported product is not executable. Looking at the export for my current configuration Mac OS X / Cocoa / 64 bits, I can see that the executable is not created in the Content/MacOS folder. The export doesn't raise any error and seems to terminate successfully. Same result when unchecking "multiple platforms".

After this, I tried exporting with the 'Generate a metadata repository' checked to see if that changes anything. This time the export fails with an error saying that it could not resolve the dependency to the equinox launcher. The exact message is 'Export product has encountered a problem.':
Cannot complete the install because one or more required items could not be found.
 Software being installed: neXtep Designer 1.0.3 (com.neXtep.designer 1.0.3)
 Missing requirement: neXtep Designer Development Environment 1.0.3.201009291603 (com.neXtep.designer.feature.feature.group 1.0.3.201009291603) requires 'org.eclipse.equinox.launcher [1.0.0,1.1.0)' but it could not be found
 Cannot satisfy dependency:


After this, if I look in the plugins folder of the metadata repository, I can find the following launcher plugins :
org.eclipse.equinox.launcher_1.1.0.v20100507.jar
org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.1.R36x_v20100810.jar
org.eclipse.equinox.launcher.nl_fr_3.5.0.v20091121043401.jar


I think I can leave the language bundle. What looks strange here is that the macosx fragment is stamped 1.1.1 but the root plugin is 1.1.0. Since the previous PDE error message was looking for [1.0.0,1.1.0) maybe this is a problem ?

I run out of ideas / things to test.
Could anyone help me with this ? I would be pleased to test anything...

Thanks,
Christophe
http://www.nextep-softwares.com
Re: [PDE] Export fails on 3.6.1, upgraded application hangs [message #629965 is a reply to message #629841] Thu, 30 September 2010 07:18 Go to previous messageGo to next message
Christophe Fondacci is currently offline Christophe Fondacci
Messages: 95
Registered: July 2009
Location: Paris
Member

Quick update :

For my first problem I have implemented p2 support in my app, and when trying to update from p2 (thanx to the nice "Support software installation" for debug conf), I got the following error :
Cannot complete the install because of a conflicting dependency.
  Software being installed: neXtep Designer Development Environment 1.0.3.201009291603 (com.neXtep.designer.feature.feature.group 1.0.3.201009291603)
  Only one of the following can be installed at once: 
    Equinox Launcher 1.1.0.v20100507 (org.eclipse.equinox.launcher 1.1.0.v20100507)
    Equinox Launcher 1.0.101.R34x_v20081125 (org.eclipse.equinox.launcher 1.0.101.R34x_v20081125)
  Cannot satisfy dependency:
    From: neXtep Designer Development Environment 1.0.3.201009291603 (com.neXtep.designer.feature.feature.group 1.0.3.201009291603)
    To: org.eclipse.equinox.launcher [1.0.0,1.1.0)
  Cannot satisfy dependency:
    From: neXtep Designer Development Environment 1.0.3.201009291603 (com.neXtep.designer.feature.feature.group 1.0.3.201009291603)
    To: org.eclipse.equinox.launcher [1.1.0.v20100507]


That could explain why the product don't start correctly after update using the UpdateManager.

I could cope with asking all my users to re-download the app... but problem 2 remains...so I cannot provide a "packaged" product export.

Christophe
http://www.nextep-softwares.com
Re: [PDE] Export fails on 3.6.1, upgraded application hangs [message #630000 is a reply to message #629841] Thu, 30 September 2010 10:01 Go to previous messageGo to next message
Christophe Fondacci is currently offline Christophe Fondacci
Messages: 95
Registered: July 2009
Location: Paris
Member

Update on full product export in failure with 3.6.1 :
Checking the option "The product includes native launcher artifacts" solved this problem and allows proper export.

What seems strange is that this option is set to true by default with every new product file created in 3.6, but previously existing products do get this new property defaulted to false...

Since there is absolutely no message, log, error (or at least warning) after or during the export, this is very confusing that this option need to be set for the launcher runtimes to be exported.

Christophe.
http://www.nextep-softwares.com
Re: [PDE] Export fails on 3.6.1, upgraded application hangs [message #631112 is a reply to message #630000] Wed, 06 October 2010 08:56 Go to previous message
Christophe Fondacci is currently offline Christophe Fondacci
Messages: 95
Registered: July 2009
Location: Paris
Member

Quick update:
workaround all problems.

Regression found on 3.6.1 (maybe existing from 3.6) for existing products :
* Splash plugin location need to be explicitly specified in the "splash" tab of the product editor, otherwise the exported product will not invoke the splash / splash handlers. (but the message says "leave blank for splash.bmp", this is no longer true)
* The check box 'The product includes native launcher artifacts" need to be checked

These are regression as a properly configured product in 3.5.2 (which can be exported successfully) cannot be exported in 3.6 unless these options are defined.


The other problem I ran into was that I had dependencies from my feature to the launcher plugin. No problem with 3.5.2 (actually I can't remember but I think theses dependencies had been automatically generated by eclipse in 3.3 or 3.4), but in 3.6 you won't be able to start an exported product (OK in debug).

So you need to make sure you haven't got any dependency on the launcher.

Hope this would help anyone running into these same problems. I truly think these items need to be at least documented.


Christophe
http://www.nextep-softwares.com
Previous Topic:org.eclipse.ant.core.antRunner application differences between 3.4.1 and 3.6.1
Next Topic:[HOWTO] Links in messages ?
Goto Forum:
  


Current Time: Mon Sep 22 04:17:13 GMT 2014

Powered by FUDForum. Page generated in 0.03176 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software