Buggy code:
public void deselectAll ( ) { } void destroyItem ( TreeColumn column ) { } void destroyItem ( TreeItem item ) { } boolean dragDetect ( int x , int y , boolean filter , boolean [ ] consume ) { } int eventWindow ( ) { } void fixChildren ( Shell newShell , Shell oldShell , Decorations newDecorations , Decorations oldDecorations , Menu [ ] menus ) { } GdkColor getBackgroundColor ( ) { } public Rectangle getClientArea ( ) { } int getClientWidth ( ) { } public TreeColumn getColumn ( int index ) { } public int getColumnCount ( ) { } public int [ ] getColumnOrder ( ) { } int [ ] getColumnTypes ( int columnCount ) { } public TreeColumn [ ] getColumns ( ) { } TreeItem getFocusItem ( ) { } GdkColor getForegroundColor ( ) { } public int getGridLineWidth ( ) { } public int getHeaderHeight ( ) { } public boolean getHeaderVisible ( ) { } public TreeItem getItem ( int index ) { } public TreeItem getItem ( Point point ) { } public int getItemCount ( ) { } public int getItemHeight ( ) { } public TreeItem [ ] getItems ( ) { } TreeItem [ ] getItems ( int parent ) { } public boolean getLinesVisible ( ) { } public TreeItem getParentItem ( ) { } int getPixbufRenderer ( int column ) { } public TreeItem [ ] getSelection ( ) { } public int getSelectionCount ( ) { } public TreeColumn getSortColumn ( ) { } public int getSortDirection ( ) { } int getTextRenderer ( int column ) { } public TreeItem getTopItem ( ) { } int gtk_button_press_event ( int widget , int event ) { } int gtk_button_release_event ( int widget , int event ) { } int gtk_changed ( int widget ) { } int gtk_expand_collapse_cursor_row ( int widget , int logical , int expand , int open_all ) { } int gtk_key_press_event ( int widget , int eventPtr ) { } int gtk_motion_notify_event ( int widget , int event ) { } int gtk_popup_menu ( int widget ) { } int gtk_row_activated ( int tree , int path , int column ) { } int gtk_test_collapse_row ( int tree , int iter , int path ) { } int gtk_test_expand_row ( int tree , int iter , int path ) { } int gtk_toggled ( int renderer , int pathStr ) { } void gtk_widget_size_request ( int widget , GtkRequisition requisition ) { } void hideFirstColumn ( ) { } void hookEvents ( ) { } public int indexOf ( TreeColumn column ) { } public int indexOf ( TreeItem item ) { } boolean mnemonicHit ( char key ) { } boolean mnemonicMatch ( char key ) { } int paintWindow ( ) { } void recreateRenderers ( ) { } void redrawBackgroundImage ( ) { } void register ( ) { } void releaseItem ( TreeItem item , boolean release ) { } void releaseItems ( int parentIter ) { } void releaseChildren ( boolean destroy ) { } void releaseWidget ( ) { } void remove ( int parentIter , int start , int end ) { } public void removeAll ( ) { } public void removeSelectionListener ( SelectionListener listener ) { } public void removeTreeListener ( TreeListener listener ) { } int rendererGetSizeProc ( int cell , int widget , int cell_area , int x_offset , int y_offset , int width , int height ) { } int rendererRenderProc ( int cell , int window , int widget , int background_area , int cell_area , int expose_area , int flags ) { } void resetCustomDraw ( ) { } public void setInsertMark ( TreeItem item , boolean before ) { checkWidget ( ) ; if ( item == null ) { <START_BUG> OS . gtk_tree_view_unset_rows_drag_dest ( handle ) ; <END_BUG> return ; } if ( item . isDisposed ( ) ) error ( ERROR_INVALID_ARGUMENT ) ; if ( ( item . parent ) != ( this ) ) return ; Rectangle rect = item . getBounds ( ) ; int [ ] path = new int [ 1 ] ; OS . gtk_widget_realize ( handle ) ; if ( ! ( OS . gtk_tree_view_get_path_at_pos ( handle , rect . x , rect . y , path , null , null , null ) ) ) return ; if ( ( path [ 0 ] ) == 0 ) return ; int position = ( before ) ? OS . GTK_TREE_VIEW_DROP_BEFORE : OS . GTK_TREE_VIEW_DROP_AFTER ; OS . gtk_tree_view_set_drag_dest_row ( handle , path [ 0 ] , position ) ; OS . gtk_tree_path_free ( path [ 0 ] ) ; } void setItemCount ( int parentIter , int count ) { } public void setItemCount ( int count ) { } public void select ( TreeItem item ) { } public void selectAll ( ) { } void setBackgroundColor ( GdkColor color ) { } void setBackgroundPixmap ( int pixmap ) { } int setBounds ( int x , int y , int width , int height , boolean move , boolean resize ) { } public void setColumnOrder ( int [ ] order ) { } void setFontDescription ( int font ) { } public void setHeaderVisible ( boolean show ) { } public void setLinesVisible ( boolean show ) { } void setParentBackground ( ) { } void setParentWindow ( int widget ) { } void setScrollWidth ( int column , TreeItem item ) { } public void setSelection ( TreeItem item ) { } public void setSelection ( TreeItem [ ] items ) { } public void setSortColumn ( TreeColumn column ) { } public void setSortDirection ( int direction ) { } public void setTopItem ( TreeItem item ) { } public void showColumn ( TreeColumn column ) { } boolean showFirstColumn ( ) { }

Fix:
OS . gtk_tree_view_set_drag_dest_row ( handle , 0 , GTK_TREE_VIEW_DROP_BEFORE ) ;