[
https://issues.jboss.org/browse/JBIDE-21673?page=com.atlassian.jira.plugi...
]
Viacheslav Kabanovich commented on JBIDE-21673:
-----------------------------------------------
The infinite cycle can be fixed with setting table layout to the table instead of direct
setting widths to its columns. Though the second way is quite legal and often used, in
this case a complex interaction between layouts of involved widgets causes the infinite
cycle of computing layouts.
JBoss Runtime Detection preference page throws StackOverflowError
-----------------------------------------------------------------
Key: JBIDE-21673
URL:
https://issues.jboss.org/browse/JBIDE-21673
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: runtime-detection
Reporter: Viacheslav Kabanovich
1. Start Eclipse.
2. Open Preferences.
3. Select JBoss Runtime Detection.
Exception:
{code}
!ENTRY org.eclipse.ui 4 0 2016-02-10 19:18:24.266
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.StackOverflowError)
at org.eclipse.swt.SWT.error(SWT.java:4503)
at org.eclipse.swt.SWT.error(SWT.java:4418)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3795)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3434)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
at org.eclipse.jface.window.Window.open(Window.java:794)
at
org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:211)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:63)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:564)
at
org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:396)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4482)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3820)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3431)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1132)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1023)
at
org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:157)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:651)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:595)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
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(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:670)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:609)
at org.eclipse.equinox.launcher.Main.run(Main.java:1516)
at org.eclipse.equinox.launcher.Main.main(Main.java:1489)
Caused by: java.lang.StackOverflowError
at org.eclipse.swt.internal.gtk.OS._gtk_widget_size_allocate(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_widget_size_allocate(OS.java:14919)
----infinitle repeated part begin----
at org.eclipse.swt.custom.TableEditor$1.controlMoved(TableEditor.java:95)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:224)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4482)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1334)
at org.eclipse.swt.widgets.TableColumn.gtk_size_allocate(TableColumn.java:395)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1991)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4718)
at org.eclipse.swt.internal.gtk.OS._gtk_widget_size_allocate(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_widget_size_allocate(OS.java:14919)
at org.eclipse.swt.widgets.Control.forceResize(Control.java:780)
at org.eclipse.swt.widgets.Table.getClientArea(Table.java:1154)
at org.eclipse.swt.custom.TableEditor.computeBounds(TableEditor.java:120)
at org.eclipse.swt.custom.ControlEditor.layout(ControlEditor.java:223)
at org.eclipse.swt.custom.TableEditor.layout(TableEditor.java:265)
at org.eclipse.swt.custom.TableEditor$1.controlMoved(TableEditor.java:95)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:224)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4482)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1329)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1334)
at org.eclipse.swt.widgets.TableColumn.gtk_size_allocate(TableColumn.java:395)
at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1991)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4718)
at org.eclipse.swt.internal.gtk.OS._gtk_widget_size_allocate(Native Method)
at org.eclipse.swt.internal.gtk.OS.gtk_widget_size_allocate(OS.java:14919)
at org.eclipse.swt.widgets.Control.forceResize(Control.java:780)
at org.eclipse.swt.widgets.Table.getClientArea(Table.java:1154)
at org.eclipse.swt.custom.TableEditor.computeBounds(TableEditor.java:120)
at org.eclipse.swt.custom.ControlEditor.layout(ControlEditor.java:223)
at org.eclipse.swt.custom.TableEditor.layout(TableEditor.java:265)
----infinitle repeated part end----
at org.eclipse.swt.custom.ControlEditor.setEditor(ControlEditor.java:251)
at org.eclipse.swt.custom.TableEditor.setEditor(TableEditor.java:240)
at org.eclipse.swt.custom.TableEditor.setEditor(TableEditor.java:256)
at
org.jboss.tools.runtime.ui.internal.preferences.RuntimePreferencePage.createDetectorViewer(RuntimePreferencePage.java:208)
at
org.jboss.tools.runtime.ui.internal.preferences.RuntimePreferencePage.createContents(RuntimePreferencePage.java:140)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:241)
at
org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1429)
at org.eclipse.jface.preference.PreferenceDialog$9.run(PreferenceDialog.java:1196)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1188)
at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:608)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:655)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:652)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:876)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173)
at
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:873)
at
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1242)
at
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1268)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:265)
at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
at org.eclipse.jface.util.OpenStrategy$1.lambda$1(OpenStrategy.java:431)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
... 36 more
{code}
4. Select another preference page.
5. Again try to select JBoss Runtime Detection.
Now, it opens successfully.
6. Try to adjust split between the tree of pages and the page.
Preferences dialog window starts uncontrollably expand until it fills the entire screen
width.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)