Community
Participate
Working Groups
I am using treeViewer to display tree. I have my custom object and have overridden my createTreeItem. My Tree is displayed correctly. and works fine.when i use "+" and "*" my tree get expanded correctly. But when my tree has some dependcies like X-->Y-->X i am getting following error and my application get's hanged:- org.eclipse.swt.internal.win32.OS.CallWindowProcW(OS.java:-2) org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2440) org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1534) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5958) org.eclipse.swt.widgets.Display.windowProc(Display.java:4976) org.eclipse.swt.internal.win32.OS.SendMessageW(OS.java:-2) org.eclipse.swt.internal.win32.OS.SendMessage(OS.java:3385) org.eclipse.swt.widgets.Tree.createItem(Tree.java:2104) org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:203) org.eclipse.swt.widgets.TreeItem.<init>(TreeItem.java:161) org.eclipse.jface.viewers.TreeViewer.createNewRowPart(TreeViewer.java:818) org.eclipse.jface.viewers.TreeViewer.newItem(TreeViewer.java:312) org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:847) com.org.rac.ui.views.TCComponentView$1.createTreeItem(TCComponentView.java:227) org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:823) org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:797) org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644) org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:768) org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1500) org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:952) org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1511) org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:132) org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) org.eclipse.swt.widgets.Tree.wmNotifyChild(Tree.java:7565) org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534) org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896) org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086) org.eclipse.swt.widgets.Control.windowProc(Control.java:4584) org.eclipse.swt.widgets.Display.windowProc(Display.java:4989) org.eclipse.swt.internal.win32.OS.CallWindowProcW(OS.java:-2) org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2440) org.eclipse.swt.widgets.Tree.callWindowProc(Tree.java:1534) org.eclipse.swt.widgets.Control.windowProc(Control.java:4623) org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5958) org.eclipse.swt.widgets.Display.windowProc(Display.java:4989) org.eclipse.swt.internal.win32.OS.DispatchMessageW(OS.java:-2) org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2546) org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756) org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701) org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665) org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499) org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679) org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668) org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) com.org.rac.aifrcp.Application.runApplication(Application.java:53) com.org.rac.aifrcp.Application.start(Application.java:77) org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353) org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180) sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629) org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) org.eclipse.equinox.launcher.Main.run(Main.java:1438) org.eclipse.equinox.launcher.Main.main(Main.java:1414) Thread[AWT-EventQueue-0,6,main]/java.awt.EventDispatchThread [Alive]
Is there any way to handle this error. or how can i fix this issue.
Moving to JFace
JFace treeviewer content provider is not able to recognize cyclic dependencies and it keeps on doing recursive call to createTreeItem. Please resolve this issue.
Hi, Could you attach a snippet that show the bug?
I have my view CustomView which extends from ViewPart. And there is Content Provider. My Custom content provider extends from ITreeContentProvider and overridden all the method like getChildren , getParent()… [code] Class MyContentProvider extends ITreeContentProvider { Object[] getChildren() { --- } } Class CustomView extends ViewPart { @Override protected StructuredViewer createViewer( Composite parent ) { TreeViewer tv = new TreeViewer(parent, ) { @Override protected void createTreeItem( Widget parent, Object element, int index ) { int index = insertAt( parent ) ? -1 : index; super.createTreeItem( parent, element, indexToConsider ); } } } } [/code] In all condition my tree expand correctly. But when My tree has any cyclic dependencies like A-->B-->A, createTreeItem gets called infinitely and application gets closed.
This sounds like an existing limitation of our tree viewers, unless you use the virtual trees and the lazy content providers. PW
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant. -- The automated Eclipse Genie.