[
https://jira.jboss.org/jira/browse/JBIDE-4391?page=com.atlassian.jira.plu...
]
Sergey Dzmitrovich resolved JBIDE-4391.
---------------------------------------
Resolution: Done
Assignee: Yura Zhishko (was: Sergey Dzmitrovich)
CSS Cancel action hang Eclipse for invalid properties
-----------------------------------------------------
Key: JBIDE-4391
URL:
https://jira.jboss.org/jira/browse/JBIDE-4391
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: Visual Page Editor core
Affects Versions: 3.1.0.M1
Environment: WinXP sp3
JBossTools-ALL-win32-3.1.0.M1-N200905280026-H204
Reporter: Yura Zhishko
Assignee: Yura Zhishko
Priority: Blocker
Attachments: screenshot-1.jpg
1) Open any CSS file
2) Call CSS dialog (Ctrl+Shift+C)
3) Choose any styleclass and enter invalid property, for example, see screenshot-1
4) Press Cancel button
RESULT: This action hangs Eclipse with next NPE:
Unhandled event loop exception
org.eclipse.swt.SWTException: Widget is disposed
at org.eclipse.swt.SWT.error(SWT.java:3881)
at org.eclipse.swt.SWT.error(SWT.java:3796)
at org.eclipse.swt.SWT.error(SWT.java:3767)
at org.eclipse.swt.widgets.Widget.error(Widget.java:463)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336)
at org.eclipse.swt.widgets.Control.setEnabled(Control.java:2917)
at
org.jboss.tools.jst.jsp.outline.cssdialog.CSSClassDialog.handleStatusChanged(CSSClassDialog.java:333)
at
org.jboss.tools.jst.jsp.outline.cssdialog.AbstractCSSDialog$2.handleValueChange(AbstractCSSDialog.java:123)
at
org.eclipse.core.databinding.observable.value.ValueChangeEvent.dispatch(ValueChangeEvent.java:62)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119)
at
org.eclipse.core.databinding.observable.value.AbstractObservableValue.fireValueChange(AbstractObservableValue.java:71)
at
org.eclipse.core.databinding.observable.value.ComputedValue.makeDirty(ComputedValue.java:169)
at
org.eclipse.core.databinding.observable.value.ComputedValue$PrivateInterface.handleChange(ComputedValue.java:116)
at org.eclipse.core.databinding.observable.ChangeEvent.dispatch(ChangeEvent.java:41)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119)
at
org.eclipse.core.databinding.observable.AbstractObservable.fireChange(AbstractObservable.java:65)
at
org.eclipse.core.databinding.observable.list.ObservableList.fireListChange(ObservableList.java:71)
at
org.eclipse.core.databinding.observable.list.WritableList.remove(WritableList.java:216)
at
org.eclipse.core.databinding.DataBindingContext.removeValidationStatusProvider(DataBindingContext.java:479)
at
org.eclipse.core.databinding.DataBindingContext.removeBinding(DataBindingContext.java:466)
at org.eclipse.core.databinding.Binding.dispose(Binding.java:127)
at org.eclipse.core.databinding.ValueBinding.dispose(ValueBinding.java:250)
at org.eclipse.core.databinding.Binding$1.handleDispose(Binding.java:67)
at org.eclipse.core.databinding.observable.DisposeEvent.dispatch(DisposeEvent.java:38)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119)
at
org.eclipse.core.databinding.observable.AbstractObservable.dispose(AbstractObservable.java:86)
at
org.eclipse.core.databinding.observable.DecoratingObservable.dispose(DecoratingObservable.java:123)
at
org.eclipse.core.databinding.observable.value.DecoratingObservableValue.dispose(DecoratingObservableValue.java:116)
at
org.eclipse.jface.internal.databinding.swt.SWTObservableValueDecorator.dispose(SWTObservableValueDecorator.java:55)
at
org.eclipse.core.databinding.observable.DecoratingObservable$1.handleDispose(DecoratingObservable.java:48)
at org.eclipse.core.databinding.observable.DisposeEvent.dispatch(DisposeEvent.java:38)
at
org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119)
at
org.eclipse.core.databinding.observable.AbstractObservable.dispose(AbstractObservable.java:86)
at
org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue.dispose(SimplePropertyObservableValue.java:151)
at
org.eclipse.core.databinding.observable.DecoratingObservable.dispose(DecoratingObservable.java:119)
at
org.eclipse.core.databinding.observable.value.DecoratingObservableValue.dispose(DecoratingObservableValue.java:116)
at
org.eclipse.jface.internal.databinding.swt.SWTObservableValueDecorator.dispose(SWTObservableValueDecorator.java:55)
at
org.eclipse.jface.internal.databinding.swt.SWTObservableValueDecorator.handleEvent(SWTObservableValueDecorator.java:42)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1008)
at org.eclipse.swt.widgets.Widget.release(Widget.java:804)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.TabFolder.releaseChildren(TabFolder.java:569)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:754)
at org.eclipse.swt.widgets.Canvas.releaseChildren(Canvas.java:174)
at org.eclipse.swt.widgets.Decorations.releaseChildren(Decorations.java:772)
at org.eclipse.swt.widgets.Shell.releaseChildren(Shell.java:1257)
at org.eclipse.swt.widgets.Widget.release(Widget.java:807)
at org.eclipse.swt.widgets.Widget.dispose(Widget.java:441)
at org.eclipse.swt.widgets.Decorations.dispose(Decorations.java:447)
at org.eclipse.swt.widgets.Shell.dispose(Shell.java:704)
at org.eclipse.jface.window.Window.close(Window.java:335)
at org.eclipse.jface.dialogs.Dialog.close(Dialog.java:979)
at org.eclipse.jface.dialogs.TrayDialog.close(TrayDialog.java:179)
at
org.jboss.tools.jst.jsp.outline.cssdialog.AbstractCSSDialog.close(AbstractCSSDialog.java:250)
at
org.jboss.tools.jst.jsp.outline.cssdialog.CSSClassDialog.close(CSSClassDialog.java:302)
at org.eclipse.jface.dialogs.Dialog.cancelPressed(Dialog.java:488)
at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:474)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at
org.jboss.tools.jst.jsp.outline.cssdialog.OpenCSSDialogActionDelegate.run(OpenCSSDialogActionDelegate.java:70)
at
org.eclipse.ui.internal.handlers.ActionDelegateHandlerProxy.execute(ActionDelegateHandlerProxy.java:289)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at
org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at
org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:824)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510)
at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:125)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1191)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1368)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4047)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:346)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3940)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4589)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2409)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3471)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Try to reproduce on Linux -> only exception appears, Eclipse is still running.
Some another small tests case should be fixed relatively to invalid properties
1) Enter invalid property in one field
2) Set focus on another field
3) Enter a valid property
ASSERT: Apply button is still disabled
ASSERT FAILED: Apply button become enabled
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira