[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: Problems Opening GEF Editor: Migration from 3.1 M6->3.1.1

Found this in the online help:

15. ClassCastException using FillLayout
What is affected: Plug-ins that incorrectly use FillLayout.

Description: In Eclipse 3.0, no layout data was associated with the
FillLayout and if an application assigned layout data to a child that was
managed by a FillLayout, it was ignored. In Eclipse 3.1, support was added
to FillLayout to cache size information in order to improve resize
performance. The cached data is stored in a FillData object associated with
each child managed by the FillLayout. If an application has incorrectly
assigned layout data to a child, a ClassCastException will be thrown when
computeSize is called on the parent.

Action required: Find any children in a FillLayout that have layout data
assigned and stop assigning the layout data.



"Paul Wuethrich" <paul.wuethrich@xxxxxxxxxxx> wrote in message
news:dij9vo$24c$1@xxxxxxxxxxxxxxxxxxx
> We just migrated to 3.1.1 from 3.1 M6 and are having trouble opening our
GEF
> editor.  It is a multi-page editor and the stack trace seems to point to
> something in SWT.  We have three other multi-page editors that do not use
> GEF and they open fine in 3.1.1.  I have also posted this to the GEF
> newsgroup.
>
> The problem is in the SWT class FillLayout whereby a class cast exception
is
> thrown since the returned object is always a GridData and not a FillData
> object.  This exception is thrown upon attempting to open the editor and
on
> the selection of any tab once the editor is opened.  There are no
references
> to our code beyond the action that invokes open editor functionality.
>
> class FillLayout {
>
> Point computeChildSize (Control control, int wHint, int hHint, boolean
> flushCache) {
>     FillData data = (FillData)control.getLayoutData ();  // LINE 141
>     ...
> }
>
> !ENTRY org.eclipse.jface 4 2 2005-10-12 09:01:49.781
> !MESSAGE Problems occurred when invoking code from plug-in:
> "org.eclipse.jface".
> !STACK 0
> java.lang.ClassCastException: org.eclipse.swt.layout.GridData
>  at
org.eclipse.swt.layout.FillLayout.computeChildSize(FillLayout.java:141)
>  at org.eclipse.swt.layout.FillLayout.computeSize(FillLayout.java:119)
>  at org.eclipse.swt.widgets.Composite.computeSize(Composite.java:213)
>  at org.eclipse.swt.layout.GridData.computeSize(GridData.java:478)
>  at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:207)
>  at org.eclipse.swt.layout.GridLayout.layout(GridLayout.java:186)
>  at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:869)
>  at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1248)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3107)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1651)
>  at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3123)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
>  at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1140)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1952)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1933)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1929)
>  at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:198)
>  at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:869)
>  at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1248)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3107)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1651)
>  at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3123)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.EndDeferWindowPos(Native Method)
>  at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:653)
>  at org.eclipse.swt.widgets.Composite.resizeChildren(Composite.java:619)
>  at
org.eclipse.swt.widgets.Composite.setResizeChildren(Composite.java:786)
>  at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1252)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3107)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1651)
>  at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3123)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
>  at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1140)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1952)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1933)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1929)
>  at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:198)
>  at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:869)
>  at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1248)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3107)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1651)
>  at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3123)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
>  at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1140)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1952)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1933)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1929)
>  at org.eclipse.swt.layout.FillLayout.layout(FillLayout.java:198)
>  at org.eclipse.swt.widgets.Composite.updateLayout(Composite.java:869)
>  at org.eclipse.swt.widgets.Composite.WM_SIZE(Composite.java:1248)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3107)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
>  at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:1651)
>  at org.eclipse.swt.widgets.Scrollable.callWindowProc(Scrollable.java:77)
>  at org.eclipse.swt.widgets.Control.windowProc(Control.java:3123)
>  at org.eclipse.swt.widgets.Display.windowProc(Display.java:3706)
>  at org.eclipse.swt.internal.win32.OS.SetWindowPos(Native Method)
>  at org.eclipse.swt.widgets.Widget.SetWindowPos(Widget.java:1140)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1952)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1933)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1929)
>  at org.eclipse.swt.widgets.Control.setBounds(Control.java:1999)
>  at org.eclipse.ui.internal.LayoutPart.setBounds(LayoutPart.java:299)
>  at
>
org.eclipse.ui.internal.presentations.PresentablePart.setBounds(PresentableP
> art.java:118)
>  at
>
org.eclipse.ui.internal.presentations.util.PresentablePartFolder.layoutConte
> nt(PresentablePartFolder.java:131)
>  at
>
org.eclipse.ui.internal.presentations.util.PresentablePartFolder.layout(Pres
> entablePartFolder.java:405)
>  at
>
org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(Pres
> entablePartFolder.java:289)
>  at
>
org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftTo
> RightTabOrder.java:65)
>  at
>
org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPar
> t(TabbedStackPresentation.java:391)
>  at
>
org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.jav
> a:1102)
>  at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1051)
>  at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1256)
>  at org.eclipse.ui.internal.PartStack.add(PartStack.java:442)
>  at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:109)
>  at
>
org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.ja
> va:60)
>  at
>
org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:2
> 12)
>  at
>
org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:202
> )
>  at
>
org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:758
> )
>  at
>
org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager
> .java:665)
>  at
org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:628)
>  at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.ja
> va:2360)
>  at
>
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2295
> )
>  at
org.eclipse.ui.internal.WorkbenchPage.access$9(WorkbenchPage.java:2287)
>  at org.eclipse.ui.internal.WorkbenchPage$9.run(WorkbenchPage.java:2273)
>  at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
>  at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2268)
>  at
> org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2249)
>  at org.eclipse.ui.ide.IDE.openEditor(IDE.java:371)
>  at org.eclipse.ui.ide.IDE.openEditor(IDE.java:334)
>  at org.eclipse.ui.actions.OpenFileAction.openFile(OpenFileAction.java:98)
>  at
>
org.eclipse.ui.actions.OpenSystemEditorAction.run(OpenSystemEditorAction.jav
> a:98)
>  at
>
com.eyeris.eyeprofit.ui.core.views.navigator.EPOpenActionGroup.runDefaultAct
> ion(EPOpenActionGroup.java:109)
>
>