Hello everyone,
I am experiencing an error with the Window Editor Designer.
Environment
Environments which I have tested are as follows:
Eclipse IDE for Java EE Developers Versions
- Oxygen(4.7.0)
- Oxygen(4.7.2)
- Neon(4.6.1)
JDK Versions
Window Builder Versions
Integrated
Operating System- Windows 10
- Mac OS X (Sierra)
Error Description
The error occurs if I use a Class in my Dialog or Part which inherits ObservableList.
For example a WritableList.
I do not need to do anything with the WritableList.
The error occurs even if a WritableList is only declared in the Class-File.
private WritableList list;
Opening the Designer gives me the following Error:
Message
Designer [1.9.1.201710100405.201802161553]: Expecting a stackmap frame at branch target 8
Exception Details:
Location:
org/eclipse/core/databinding/observable/list/ObservableList.<init>(Lorg/eclipse/core/databinding/observable/Realm;Ljava/util/List;Ljava/lang/Object;)V @1: ifnonnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2cc7 0007 b200 284d 2a2b b700 2b2a 03b5
0x0000010: 002d 2a2c b500 2f2a 2db5 0031 b1
StackTrace
Exception Details:
Location:
org/eclipse/core/databinding/observable/list/ObservableList.<init>(Lorg/eclipse/core/databinding/observable/Realm;Ljava/util/List;Ljava/lang/Object;)V @1: ifnonnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2cc7 0007 b200 284d 2a2b b700 2b2a 03b5
0x0000010: 002d 2a2c b500 2f2a 2db5 0031 b1
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetPublicMethods(Class.java:2902)
at java.lang.Class.getMethods(Class.java:1615)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1336)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1197)
at java.beans.Introspector.getBeanInfo(Introspector.java:426)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at java.beans.Introspector.getBeanInfo(Introspector.java:260)
at java.beans.Introspector.<init>(Introspector.java:407)
at java.beans.Introspector.getBeanInfo(Introspector.java:173)
at org.eclipse.wb.internal.rcp.databinding.model.beans.bindables.BeanSupport.getPropertyDescriptors(BeanSupport.java:366)
at org.eclipse.wb.internal.rcp.databinding.model.beans.bindables.BeanSupport.getProperties(BeanSupport.java:133)
at org.eclipse.wb.internal.rcp.databinding.model.beans.bindables.BeanBindableInfo.getProperties(BeanBindableInfo.java:103)
at org.eclipse.wb.internal.rcp.databinding.model.beans.bindables.FieldBeanBindableInfo.<init>(FieldBeanBindableInfo.java:66)
at org.eclipse.wb.internal.rcp.databinding.model.beans.bindables.FieldBeanBindableInfo.<init>(FieldBeanBindableInfo.java:52)
at org.eclipse.wb.internal.rcp.databinding.model.beans.BeansObserveTypeContainer.createObservables(BeansObserveTypeContainer.java:379)
at org.eclipse.wb.internal.rcp.databinding.parser.DatabindingParser.<init>(DatabindingParser.java:59)
at org.eclipse.wb.internal.rcp.databinding.parser.DatabindingParser.parse(DatabindingParser.java:45)
at org.eclipse.wb.internal.rcp.databinding.JFaceDatabindingsFactory.createProvider(JFaceDatabindingsFactory.java:38)
at org.eclipse.wb.internal.core.databinding.parser.DatabindingRootProcessor.process(DatabindingRootProcessor.java:58)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.callRootProcessors(JavaInfoParser.java:457)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.getRoot(JavaInfoParser.java:415)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parseRootMethods(JavaInfoParser.java:322)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:268)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.access$9(JavaInfoParser.java:238)
at org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:153)
at org.eclipse.wb.internal.core.parser.JavaInfoParser$1.runObject(JavaInfoParser.java:1)
at org.eclipse.wb.internal.core.utils.execution.ExecutionUtils.runDesignTime(ExecutionUtils.java:159)
at org.eclipse.wb.internal.core.parser.JavaInfoParser.parse(JavaInfoParser.java:151)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:534)
at org.eclipse.wb.internal.core.editor.DesignPage.access$9(DesignPage.java:522)
at org.eclipse.wb.internal.core.editor.DesignPage$8$1.run(DesignPage.java:449)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:4871)
at org.eclipse.wb.internal.core.editor.DesignPage$8.run(DesignPage.java:446)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:483)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF_withProgress(DesignPage.java:465)
at org.eclipse.wb.internal.core.editor.DesignPage.internal_refreshGEF(DesignPage.java:415)
at org.eclipse.wb.internal.core.editor.UndoManager.refreshDesignerEditor(UndoManager.java:381)
at org.eclipse.wb.internal.core.editor.UndoManager.activate(UndoManager.java:90)
at org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState_True(DesignPage.java:263)
at org.eclipse.wb.internal.core.editor.DesignPage.handleActiveState(DesignPage.java:241)
at org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode.showPage(DefaultMultiMode.java:125)
at org.eclipse.wb.internal.core.editor.multi.DefaultMultiMode$1.widgetSelected(DefaultMultiMode.java:63)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4258)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1314)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3187)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1870)
at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:328)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4258)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1502)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1525)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1510)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1314)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4082)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3699)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
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:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Consequences and Following Errors
The Designer does not crash.
It opens the Designer an it works fine.
The real problem starts when I create a Dialog wich extends a Dialog that generates this error.
Then the Designer won't show up.
It just generates the following error:
Exception during 'super' constructor evaluation
An exception happened during evaluation of constructor ExtendedTitleAreaDialog(Shell,String,String) using arguments {Shell {},ExtendedTitle,ExtendedInfo}.
java.lang.VerifyError: Expecting a stackmap frame at branch target 8
Exception Details:
Location:
org/eclipse/core/databinding/observable/list/ObservableList.<init>(Lorg/eclipse/core/databinding/observable/Realm;Ljava/util/List;Ljava/lang/Object;)V @1: ifnonnull
Reason:
Expected stackmap frame at this location.
Bytecode:
0x0000000: 2cc7 0007 b200 284d 2a2b b700 2b2a 03b5
0x0000010: 002d 2a2c b500 2f2a 2db5 0031 b1
Steps to reproduce
The Error is very easy to reproduce.
Just create a TitleAreaDialog and declare a WritableList.
For example:
public class TestDialog extends TitleAreaDialog {
private ObservableList list;
Then open the File in Window Builder Designer.
In the Error Log/Workspace Log you will see the Error.
Solutions?
I have not found any way to solve this problem.
As you can see i have tried with different Environments (Eclipse Versions, JDK Versions, OS)
Any help would be appreciated.