Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 471579

Summary: Installing RAP/RWT counterparts to SWT bundles leads to unwanted side-effects
Product: [RT] RAP Reporter: EPP Error Reports <error-reports-inbox>
Component: RelengAssignee: Project Inbox <rap-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: cole, mknauer, xyzk
Version: 2.3   
Target Milestone: 3.1 M7   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on: 490922    
Bug Blocks:    

Description EPP Error Reports CLA 2015-07-01 08:47:38 EDT
We got the following stack trace from the Automated Error Reporting. Based on the listed installed bundles, and based on the included stack trace this can be easily explained by someone who has both flavours of implementations (SWT + RWT) installed into the Eclipse IDE at the same time.

It shouldn't be possible to install any RAP Runtime feature into any Eclipse IDE which is prevented by negative requirements on a p2 level. But it is possible to install RAP Runtime bundles together with their SWT counterparts which will lead to massive problems.

The following incident was reported via the automated error reporting:


    code:                   2
    plugin:                 org.eclipse.rap.ui.workbench_2.3.1.20140819-1926
    message:                Problems occurred when invoking code from plug-in: "org.eclipse.rap.ui.workbench".
    fingerprint:            b43891f0
    exception class:        java.lang.IllegalStateException
    exception message:      Invalid thread access
    number of children:     0
    
    java.lang.IllegalStateException: Invalid thread access
    at org.eclipse.rap.rwt.RWT.checkContext(RWT.java:733)
    at org.eclipse.rap.rwt.RWT.getUISession(RWT.java:592)
    at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.getNodeCore(SessionPreferencesNode.java:506)
    at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.fireNodeEvent(SessionPreferencesNode.java:500)
    at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.createChild(SessionPreferencesNode.java:445)
    at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.getChild(SessionPreferencesNode.java:456)
    at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.node(SessionPreferencesNode.java:105)
    at org.eclipse.rap.ui.internal.preferences.SessionScope.getNode(SessionScope.java:69)
    at org.eclipse.ui.preferences.ScopedPreferenceStoreCore.getStorePreferences(ScopedPreferenceStoreCore.java:225)
    at org.eclipse.ui.preferences.ScopedPreferenceStoreCore.<init>(ScopedPreferenceStoreCore.java:118)
    at org.eclipse.ui.preferences.ScopedPreferenceStoreCore.<init>(ScopedPreferenceStoreCore.java:100)
    at org.eclipse.ui.preferences.ScopedPreferenceStore.createScopedPreferenceStoreCore(ScopedPreferenceStore.java:155)
    at org.eclipse.ui.preferences.ScopedPreferenceStore.<init>(ScopedPreferenceStore.java:136)
    at org.eclipse.ui.plugin.AbstractUIPlugin.getPreferenceStore(AbstractUIPlugin.java:309)
    at org.eclipse.ui.internal.progress.ProgressManager.shouldRunInBackground(ProgressManager.java:1357)
    at org.eclipse.ui.internal.progress.ProgressManager.access$2(ProgressManager.java:1356)
    at org.eclipse.ui.internal.progress.ProgressManager$2.scheduled(ProgressManager.java:516)
    at org.eclipse.rap.ui.internal.progress.JobManagerAdapter.scheduled(JobManagerAdapter.java:163)
    at org.eclipse.core.internal.jobs.JobListeners$5.notify(JobListeners.java:54)
    at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:102)
    at org.eclipse.core.internal.jobs.JobListeners.scheduled(JobListeners.java:165)
    at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1159)
    at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:430)
    at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:473)
    at org.eclipse.equinox.internal.p2.ui.ProvisioningOperationRunner.schedule(ProvisioningOperationRunner.java:61)
    at org.eclipse.equinox.p2.ui.ProvisioningUI.schedule(ProvisioningUI.java:355)
    at org.eclipse.equinox.internal.p2.ui.actions.ProfileModificationAction.run(ProfileModificationAction.java:95)
    at org.eclipse.equinox.internal.p2.ui.actions.ProfileModificationAction.run(ProfileModificationAction.java:55)
    at org.eclipse.equinox.p2.ui.InstalledSoftwarePage$3.run(InstalledSoftwarePage.java:173)
    at org.eclipse.equinox.p2.ui.InstalledSoftwarePage.buttonPressed(InstalledSoftwarePage.java:269)
    at org.eclipse.ui.about.InstallationPage$1.widgetSelected(InstallationPage.java:136)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:832)
    at org.eclipse.jface.window.Window.open(Window.java:808)
    at org.eclipse.ui.internal.about.InstallationHandler.execute(InstallationHandler.java:27)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1)
    at java.lang.reflect.Method.invoke(null:-1)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:247)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:229)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:149)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:825)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:701)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$6(HandledContributionItem.java:685)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:613)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1)
    at java.lang.reflect.Method.invoke(null:-1)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
   
  

General Information:

    reported-by:      
    anonymous-id:     5b732d3e-2f98-4269-8ad9-df5a3e15e9db
    eclipse-build-id: 4.4.1.M20140925-0400
    eclipse-product:  org.eclipse.epp.package.java.product
    operating system: Windows7 6.1.0 (x86_64) - win32
    jre-version:      1.8.0_31-b13

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.commands_3.6.100.v20140528-1422
    2. org.eclipse.core.databinding.observable_1.4.1.v20140210-1835
    3. org.eclipse.core.databinding_1.4.2.v20140729-1044
    4. org.eclipse.core.jobs_3.6.0.v20140424-0053
    5. org.eclipse.core.runtime_3.10.0.v20140318-2214
    6. org.eclipse.e4.core.commands_0.10.2.v20140424-2344
    7. org.eclipse.e4.core.contexts_1.3.100.v20140407-1019
    8. org.eclipse.e4.core.di_1.4.0.v20140414-1837
    9. org.eclipse.e4.ui.workbench_1.2.1.v20140901-1244
    10. org.eclipse.e4.ui.workbench.renderers.swt_0.12.1.v20140903-1023
    11. org.eclipse.e4.ui.workbench.swt_0.12.100.v20140530-1436
    12. org.eclipse.equinox.app_1.3.200.v20130910-1609
    13. org.eclipse.equinox.launcher_1.3.0.v20140415-2008
    14. org.eclipse.equinox.p2.ui_2.3.0.v20140404-1657
    15. org.eclipse.jface_3.10.1.v20140813-1009
    16. org.eclipse.rap.rwt_2.3.1.20140909-1638
    17. org.eclipse.rap.ui_2.3.1.20140819-1926
    18. org.eclipse.swt_3.103.1.v20140903-1938
    19. org.eclipse.ui_3.106.0.v20140812-1751
    20. org.eclipse.ui.ide.application_1.0.500.v20140514-2033
    21. org.eclipse.ui.ide_3.10.1.v20140828-0944

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent back to reporters.
* The list of present bundles and their respective versions was calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/54dfb063e4b0948555dae2c8  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.

This bug was created on behalf of mknauer@eclipsesource.com.
Comment 1 Frederic Dutertre CLA 2015-08-09 04:37:34 EDT
Hello,

Can you help me determining which plugins are in conflict?
$ find eclipse -name "*rap.rwt*"
eclipse/plugins/org.eclipse.rap.rwt.osgi_3.0.0.20150520-1707.jar
eclipse/plugins/org.eclipse.rap.rwt.testfixture.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.rap.rwt.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.rap.rwt_3.0.0.20150601-1556.jar

$ find eclipse/plugins/ -name "*swt*"
eclipse/plugins/org.eclipse.e4.ui.css.swt.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.e4.ui.css.swt.theme_0.10.0.v20150422-0725.jar
eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64_3.104.0.v20150528-0211.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.addons.swt.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.swt_3.104.0.v20150528-0211.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.renderers.swt_0.13.0.v20150603-0857.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.addons.swt_1.2.0.v20150512-1414.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.swt.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.e4.ui.swt.gtk_1.0.0.v20150430-0904.jar
eclipse/plugins/org.eclipse.swt.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.swt_0.13.0.v20150504-0621.jar
eclipse/plugins/org.eclipse.e4.ui.css.swt.theme.nl_fr_4.4.0.v20141223043836.jar
eclipse/plugins/org.eclipse.e4.ui.css.swt_0.12.0.v20150511-1003.jar
eclipse/plugins/org.eclipse.e4.ui.workbench.renderers.swt.nl_fr_4.4.0.v20141223043836.jar


It's a  PHP dev Mars version with plugins installed from Luna version.

Best regards
Comment 2 Cole Markham CLA 2016-04-04 09:40:12 EDT
(In reply to Frederic Dutertre from comment #1)
> Hello,
> 
> Can you help me determining which plugins are in conflict?
You should not have any RWT bundles in your eclipse application. Do you know if you installed something manually?

> $ find eclipse -name "*rap.rwt*"
> eclipse/plugins/org.eclipse.rap.rwt.osgi_3.0.0.20150520-1707.jar
> eclipse/plugins/org.eclipse.rap.rwt.testfixture.nl_fr_4.4.0.v20141223043836.
> jar
> eclipse/plugins/org.eclipse.rap.rwt.nl_fr_4.4.0.v20141223043836.jar
> eclipse/plugins/org.eclipse.rap.rwt_3.0.0.20150601-1556.jar
> 
> $ find eclipse/plugins/ -name "*swt*"
> eclipse/plugins/org.eclipse.e4.ui.css.swt.nl_fr_4.4.0.v20141223043836.jar
> eclipse/plugins/org.eclipse.e4.ui.css.swt.theme_0.10.0.v20150422-0725.jar
> eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64_3.104.0.v20150528-0211.jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.addons.swt.nl_fr_4.4.0.
> v20141223043836.jar
> eclipse/plugins/org.eclipse.swt.gtk.linux.x86_64.nl_fr_4.4.0.v20141223043836.
> jar
> eclipse/plugins/org.eclipse.swt_3.104.0.v20150528-0211.jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.renderers.swt_0.13.0.v20150603-
> 0857.jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.addons.swt_1.2.0.v20150512-1414.
> jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.swt.nl_fr_4.4.0.v20141223043836.
> jar
> eclipse/plugins/org.eclipse.e4.ui.swt.gtk_1.0.0.v20150430-0904.jar
> eclipse/plugins/org.eclipse.swt.nl_fr_4.4.0.v20141223043836.jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.swt_0.13.0.v20150504-0621.jar
> eclipse/plugins/org.eclipse.e4.ui.css.swt.theme.nl_fr_4.4.0.v20141223043836.
> jar
> eclipse/plugins/org.eclipse.e4.ui.css.swt_0.12.0.v20150511-1003.jar
> eclipse/plugins/org.eclipse.e4.ui.workbench.renderers.swt.nl_fr_4.4.0.
> v20141223043836.jar
> 
> 
> It's a  PHP dev Mars version with plugins installed from Luna version.
> 
> Best regards
Comment 3 Markus Knauer CLA 2016-06-09 06:51:09 EDT
With the changes implemented as part of bug 490922 I hope that we can prevent (most) future problems of that kind. I'm closing this bug for now, please re-open if it happens again with a detailed description how to reproduce it.