Community
Participate
Working Groups
org.eclipse.swt.custom.TableTreeItem does not check size of created image In line 186 a new image is created with size = itemHeight. But it does not check that the size is not 0. On my machine this is the case and causes an exception in swt: (<unknown>:29390): Gtk-CRITICAL **: file gtktreeview.c: line 9923 (gtk_tree_view_get_cell_area): assertion `GTK_WIDGET_REALIZED (tree_view)' failed Exception in thread "main" java.lang.IllegalArgumentException: Argument not valid at org.eclipse.swt.SWT.error(SWT.java:2318) at org.eclipse.swt.SWT.error(SWT.java:2262) at org.eclipse.swt.graphics.Image.init(Image.java:716) at org.eclipse.swt.graphics.Image.<init>(Image.java:156) at org.eclipse.swt.custom.TableTreeItem.<init>(TableTreeItem.java:186) at org.eclipse.swt.custom.TableTreeItem.<init>(TableTreeItem.java:98) at org.eclipse.swt.custom.TableTreeItem.<init>(TableTreeItem.java:65) at org.eclipse.jface.viewers.TableTreeViewer.newItem(TableTreeViewer.java:370) at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:319) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:303) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:289) at org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:729) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:801) at org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:721) at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:238) at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:991) at com.ibm.research.todo.ui.TableTreeBug.<init>(TableTreeBug.java:75) at com.ibm.research.todo.ui.TableTreeBug.main(TableTreeBug.java:270) --------------------------------------------------------------- Here is the excerpt from TableTreeItem.java: if (parent.sizeImage == null) { ->>> int itemHeight = parent.getItemHeight(); <-- should check for zero size. parent.sizeImage = new Image(null, itemHeight, itemHeight); GC gc = new GC (parent.sizeImage); gc.setBackground(parent.getBackground()); gc.fillRectangle(0, 0, itemHeight, itemHeight); gc.dispose(); tableItem.setImage(0, parent.sizeImage);
Didn't we just fix this recently? If so, please verify and close. Thanks.
Fixed in version > 20030429 Please reopen if you can still see it with a more recent integration build *** This bug has been marked as a duplicate of 36993 ***