Community
Participate
Working Groups
Created attachment 138374 [details] screenshot Description: The data binding can be removed when double click "Edit Bindings" in Expression builder, but after remove exception is thrown out when click to finish. Build number: 2.5.0.v20090605-0630 Steps to reproduce: 1. New a report parameter, drag the parameter to the Layout. 2. Double click the data to open the "Edit Data Binding" dialogue, open the expression builder, select "Available Column Bindings->Data (NewParameter)->Edit Bindings...", double click to open the "Edit Data Binding" dialogue, select the binding and click "Remove", and click OK to close the dialogue. 3. Click "OK" to close the expression build and click "OK" to click the "Edit Data Binding" dialogue. Expected result: Either the "OK" button is disabled after remove the binding, or remove the binding is allowed and no exception is thrown out. Actual result: Exception is thrown out.
Error log: org.eclipse.birt.report.designer.core.runtime.GUIException: The structure is floating, and its handle is invalid! at org.eclipse.birt.report.designer.core.runtime.GUIException.createGUIException(GUIException.java:78) at org.eclipse.birt.report.designer.internal.ui.util.ExceptionHandler.handle(ExceptionHandler.java:169) at org.eclipse.birt.report.designer.internal.ui.util.ExceptionHandler.handle(ExceptionHandler.java:150) at org.eclipse.birt.report.designer.internal.ui.util.ExceptionHandler.handle(ExceptionHandler.java:89) at org.eclipse.birt.report.designer.internal.ui.dialogs.DataColumnBindingDialog.okPressed(DataColumnBindingDialog.java:287) at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:472) 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.eclipse.birt.report.designer.ui.dialogs.BaseDialog.open(BaseDialog.java:110) at org.eclipse.birt.report.designer.internal.ui.editors.schematic.editparts.DataEditPart.performDirectEdit(DataEditPart.java:143) at org.eclipse.birt.report.designer.internal.ui.editors.schematic.editparts.ReportElementEditPart.performRequest(ReportElementEditPart.java:149) at org.eclipse.gef.tools.SelectEditPartTracker.performOpen(SelectEditPartTracker.java:187) at org.eclipse.gef.tools.SelectEditPartTracker.handleDoubleClick(SelectEditPartTracker.java:131) at org.eclipse.gef.tools.AbstractTool.mouseDoubleClick(AbstractTool.java:955) at org.eclipse.birt.report.designer.internal.ui.editors.schematic.tools.ReportElementDragTracker.mouseDoubleClick(ReportElementDragTracker.java:125) at org.eclipse.gef.tools.SelectionTool.mouseDoubleClick(SelectionTool.java:501) at org.eclipse.gef.EditDomain.mouseDoubleClick(EditDomain.java:208) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseDoubleClicked(DomainEventDispatcher.java:285) at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDoubleClick(LightweightSystem.java:508) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:183) 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.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) Caused by: java.lang.RuntimeException: The structure is floating, and its handle is invalid! at org.eclipse.birt.report.model.api.MemberHandle.<init>(MemberHandle.java:59) at org.eclipse.birt.report.model.api.StructureHandle.getMember(StructureHandle.java:288) at org.eclipse.birt.report.model.api.StructureHandle.getStringProperty(StructureHandle.java:201) at org.eclipse.birt.report.model.api.ComputedColumnHandle.getName(ComputedColumnHandle.java:115) at org.eclipse.birt.report.designer.internal.ui.dialogs.BindingDialogHelper.differs(BindingDialogHelper.java:1230) at org.eclipse.birt.report.designer.internal.ui.dialogs.DataColumnBindingDialog.okPressed(DataColumnBindingDialog.java:208) ... 45 more
This is related to how to control the model state when transaction stack is not committed, need more investigation for this.