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

Yura Zhishko (JIRA) jira-events at lists.jboss.org
Tue Jun 9 12:15:56 EDT 2009


     [ https://jira.jboss.org/jira/browse/JBIDE-4391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yura Zhishko closed JBIDE-4391.
-------------------------------



Verified in jbdevstudio-eap-win32-3.0.0.M1-N200906052254-H230

> 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

        



More information about the jbosstools-issues mailing list