[jbosstools-issues] [JBoss JIRA] Created: (JBIDE-4391) CSS Cancel action hang Eclipse for invalid properties

Yura Zhishko (JIRA) jira-events at lists.jboss.org
Fri May 29 11:12:56 EDT 2009


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: Sergey Dzmitrovich
            Priority: Blocker


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

        



More information about the jbosstools-issues mailing list