| Summary: | Inner user-job fails due to preference store | ||
|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Benjamin Muskalla <b.muskalla> |
| Component: | Workbench | Assignee: | Project Inbox <rap-inbox> |
| Status: | ASSIGNED --- | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | shivendra.prakash2008 |
| Version: | 1.3 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Bug Depends on: | |||
| Bug Blocks: | 262603 | ||
Still valid with RAP 2.1: java.lang.IllegalStateException: Invalid thread access at org.eclipse.rap.rwt.RWT.checkContext(RWT.java:652) at org.eclipse.rap.rwt.RWT.getUISession(RWT.java:511) at org.eclipse.ui.preferences.ScopedPreferenceStore.getCore(ScopedPreferenceStore.java:164) at org.eclipse.ui.preferences.ScopedPreferenceStore.getBoolean(ScopedPreferenceStore.java:447) 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:49) at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:96) at org.eclipse.core.internal.jobs.JobListeners.scheduled(JobListeners.java:162) at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1133) at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:430) at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:436) at rap.bugs.view.ApplicationTesterView$1$1.run(ApplicationTesterView.java:40) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) Still this issue coming in Oxigen also java.lang.IllegalStateException: Invalid thread access at org.eclipse.rap.rwt.RWT.checkContext(RWT.java:703) at org.eclipse.rap.rwt.RWT.getUISession(RWT.java:587) at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.getNodeCore(SessionPreferencesNode.java:506) at org.eclipse.rap.ui.internal.preferences.SessionPreferencesNode.addNodeChangeListener(SessionPreferencesNode.java:80) at org.eclipse.ui.preferences.ScopedPreferenceStoreCore.<init>(ScopedPreferenceStoreCore.java:119) 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.doNotify(JobListeners.java:70) at org.eclipse.core.internal.jobs.JobListeners.scheduled(JobListeners.java:125) at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1257) at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:382) at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:635) at org.eclipse.ui.internal.ide.dialogs.CleanDialog.buttonPressed(CleanDialog.java:232) at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619) at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:81) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817) at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) at org.eclipse.jface.window.Window.open(Window.java:794) at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:396) at org.eclipse.ui.internal.ide.actions.BuildCleanAction.run(BuildCleanAction.java:50) at org.eclipse.jface.action.Action.runWithEvent(Action.java:473) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565) at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:397) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) 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:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499) |
Scheduling a user-job inside a user-job fails as the JobManager tries to access the session-scoped preference store. Snippet: Job job = new Job("Long Running Action:" ) { protected IStatus run( final IProgressMonitor monitor ) { Job innerJob = new Job("foo") { protected IStatus run( IProgressMonitor monitor ) { return null; } }; innerJob.setUser( true ); innerJob.schedule(); return Status.OK_STATUS; } }; job.setName( job.getName() + " " + job.hashCode() ); job.setUser( true ); job.schedule(); !ENTRY org.eclipse.rap.ui.workbench 4 2 2010-05-19 21:27:11.376 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.rap.ui.workbench". !STACK 0 java.lang.IllegalStateException: No context available outside of the request service lifecycle. at org.eclipse.rwt.internal.service.ContextProvider.getContext(ContextProvider.java:107) at org.eclipse.rwt.internal.service.ContextProvider.getSession(ContextProvider.java:140) at org.eclipse.rwt.RWT.getSessionStore(RWT.java:242) at org.eclipse.ui.preferences.ScopedPreferenceStore.getCore(ScopedPreferenceStore.java:163) at org.eclipse.ui.preferences.ScopedPreferenceStore.getBoolean(ScopedPreferenceStore.java:446) at org.eclipse.ui.internal.progress.ProgressManager.shouldRunInBackground(ProgressManager.java:1400) at org.eclipse.ui.internal.progress.ProgressManager.access$2(ProgressManager.java:1399) at org.eclipse.ui.internal.progress.ProgressManager$1.scheduled(ProgressManager.java:476) at org.eclipse.rap.ui.internal.progress.JobManagerAdapter.scheduled(JobManagerAdapter.java:167) at org.eclipse.core.internal.jobs.JobListeners$5.notify(JobListeners.java:49) at org.eclipse.core.internal.jobs.JobListeners.doNotify(JobListeners.java:96) at org.eclipse.core.internal.jobs.JobListeners.scheduled(JobListeners.java:162) at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1000) at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:391) at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:435) at org.eclipse.rap.demo.actions.JobAction$1.run(JobAction.java:39) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)