[ 
https://issues.apache.org/jira/browse/WICKET-2888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907653#action_12907653
 ] 

Pedro Santos commented on WICKET-2888:
--------------------------------------

Actually the method wasn't postponed, because the "Wicket.Tree.createElement" 
call is prepended at the ajax target. To your described use case work without 
undo the NPE correction, the response need to be:

<component>c2 html to be replaced</component>
<evaluate>create c3 javascript that has the "afterId" parameter equals to the 
c2 component rendered at the last step</evaluate>


> Nullpointer when inserting [i.e. moving] a node in a TreeTable (AbstactTree, 
> treeNodesInserted)
> -----------------------------------------------------------------------------------------------
>
>                 Key: WICKET-2888
>                 URL: https://issues.apache.org/jira/browse/WICKET-2888
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket, wicket-extensions
>    Affects Versions: 1.4.2
>         Environment: On Linux, AMD64
>            Reporter: Rob Audenaerde
>         Attachments: patch.txt, tree-quickstart.tar.gz
>
>
> A have a simple tree:
> root
> -c1
> --cc1
> -c2
> --cc2
> -c3
> I want to move c3 from parent root to parent c2. This works when the treenode 
> c2 is not expanded, i.e. cc2 is not shown. When c2 is expanded, the action 
> results in a nullPointerException in treeNodesInserted. The cause of the 
> nullPointer is:
> parentItem.getChildren() <-- returns null, but in line 845 the 
> parentItem.getChildren().add() is called, thus the nullPointer.
> Any hints?
> my piece of tree manipulation code:
>                table.getTreeTable().modelChanging();
>                 DefaultTreeModel model = (DefaultTreeModel) 
> table.getTreeTable().getDefaultModelObject();
>                 DefaultMutableTreeNode parent = (DefaultMutableTreeNode) 
> myNode.getParent();
>                 // getIndexOfChild returns -1 if either of th nodes == null
>                 int myIndex = model.getIndexOfChild( parent, myNode );
>                 if ( myIndex < 1 ) // 0 or -1
>                 {
>                     return;
>                 }
>                 DefaultMutableTreeNode previousSibling = 
> (DefaultMutableTreeNode) model.getChild( parent, myIndex - 1 );
>                 model.removeNodeFromParent( myNode );
>                 //insert the node as last
>                 model.insertNodeInto( myNode, previousSibling, 
> model.getChildCount( previousSibling ) );
>                 table.getTreeTable().modelChanged();

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to