I have a tree that I use to navigate my data model and update the data. See the sample below.
I have placed a breakpoint in my listener method and here is what I see.
The nodeSelectListener works fine until the a4j:commandButton is pressed. You can still navigate to other nodes, but when you select the node that was just saved the listener method is not invoked. If I save another node then the listener on the previously saved node starts to work again.
If I switch the a4j:commandButton to just reRender the 'detail' then the nodeSelectListener works fine. However, this is not good, because now my tree is not refreshed.
Any ideas what is going on here?
<t:table id="view">
 <t:tr>
 <t:td id="left">
 <a4j:form id="treeForm">
 <rich:tree id="tree" value="#{tree}" var="item" nodeFace="#{item.type}">
 <rich:treeNode type="Root">
 <h:outputText value="#{item.text}"/>
 </rich:treeNode>
 <rich:treeNode type="Folder">
 <h:outputText value="#{item.text}"/>
 </rich:treeNode>
 <rich:treeNode type="MyEntity"
 ajaxSubmitSelection="true"
 nodeSelectListener="#{item.changeCurrent}"
 reRender="detail">
 <h:outputText value="#{item.text}"/>
 </rich:treeNode>
 </rich:tree>
 </a4j:form>
 </t:td>
 <t:td id="detail">
 <a4j:form id="detailForm">
 <a4j:commandButton value="Save"
 reRender="view" action="#{tree.current.save}">
 </a4j:commandButton>
 <!-- details go here -->
 </a4j:form>
 </t:td>
 </t:tr>
</t:table>