rich:tree java.lang.NullPointerException
forn Mar 15, 2011 8:16 AMHello, here is my code:
<ui:define name="leftZone"> <h:form> <rich:panel header="Навигация"> <rich:tree id="navigationTree" var="node" value="#{treeManager.rootNodes}" toggleType="ajax" selectionType="ajax" selectionChangeListener="#{treeManager.selectionChanged}" nodeType="#{node.type}" reRender="mainPanel" render="mainPanel"> <rich:treeNode type="folder"> #{node.name} </rich:treeNode> </rich:tree> </rich:panel> </h:form> </ui:define>
public void initTree() throws AsgeMetaException, AsgeEssenceOperationException { if (rootFolderId != null) { currentSelection = null; rootNodes.clear(); // Получаем саму папку. AsgeEssenceId folderId = new AsgeEssenceId(rootFolderId); AsgeEssenceOperationManager eom = new AsgeEssenceOperationManager(folderId); eom.setGetLinkedObjects(false); AsgeFolder folder = (AsgeFolder) eom.getOne(); // Добавляем саму папку в дерево (TODO: временно на стадии отладки) AsgeTreeNode node = new AsgeTreeNode(folder, null); node.setName(folder.getTitle()); rootNodes.add(node); } else { rootNodes.clear(); } if (tree != null) { tree.clearInitialState(); tree.setRowKey(null); tree.setSelection(null); tree.setIterationState(null); tree.setRowKey(FacesContext.getCurrentInstance(), null); tree.setData(null); } } /** * Выбор элемента дерева. * * @param selectionChangeEvent * selectionChangeEvent */ public void selectionChanged(TreeSelectionChangeEvent selectionChangeEvent) { Collection<Object> selectionColl = selectionChangeEvent.getNewSelection(); if (selectionColl != null) { List<Object> selection = new ArrayList<Object>(selectionColl); Object currentSelectionKey = selection.get(0); tree = (UITree) selectionChangeEvent.getSource(); Object storedKey = tree.getRowKey(); tree.setRowKey(currentSelectionKey); currentSelection = (TreeNode) tree.getRowData(); tree.setRowKey(storedKey); isSelectionChanged = true; @SuppressWarnings("unchecked") AsgeExtendedDataTableModel<? extends AsgeEssence> dataModel = (AsgeExtendedDataTableModel<? extends AsgeEssence>) javax.faces.context.FacesContext .getCurrentInstance().getExternalContext().getSessionMap().get("extDataModel"); dataModel.setSelectedNode(currentSelection); } }
All is fine until i try to refreshpage - F5 i get the error
15.03.2011 15:10:52 com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException SEVERE: Error Rendering View[/WEB-INF/flows/controlpanel/main.xhtml] java.lang.NullPointerException at org.richfaces.component.AbstractTabPanel.getActiveItem(AbstractTabPanel.java:60) at org.richfaces.component.AbstractTogglePanel.encodeBegin(AbstractTogglePanel.java:168) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1641) at org.richfaces.renderkit.RendererBase.renderChildren(RendererBase.java:278) at org.richfaces.renderkit.html.PopupPanelRenderer.encodeEnd(PopupPanelRenderer.java:534) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650) at javax.faces.render.Renderer.encodeChildren(Renderer.java:164) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:389)