[ http://issues.apache.org/jira/browse/BEEHIVE-461?page=history ]
     
Daryl Olander resolved BEEHIVE-461:
-----------------------------------

    Resolution: Fixed

The problem was that we were not removing the child from the array list that it 
was found in.  We were cleaning up the node but not removing it, so during 
rendering the NPE occurred.  

The fix was to remove the node from te array list.

BVT: coreweb/bugs/j461

> NPE when calling removeChild on a Tree
> --------------------------------------
>
>          Key: BEEHIVE-461
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-461
>      Project: Beehive
>         Type: Bug
>   Components: NetUI
>     Versions: V1Beta
>     Reporter: Krista Baker
>     Assignee: Daryl Olander
>      Fix For: V1
>  Attachments: j461.zip
>
> When creating a tree in the pageFlow and adding children, when an action is 
> called to removeChild on the tree an NPE occurs in TreeRenderer.java.
> Test: (Repro will be attached)
> 1) create a new tree in the pageFlow by using a treeElement and add a child 
> at offset zero.
> 2) add a forward action that will remove the child and return to the same jsp
> 3) add the tree and an anchor to the action in step 2) to the jsp page
> 4) View the jsp page and see that the tree renders correctly.  Call the 
> action to remove the child and the NPE is returned.
> Second Test Case:
> 1)Add the following to the body of a Controller file:
>    private TreeElement productTree;
>    public TreeElement getProductTree(){ return this.productTree;}
>    public void setProductTree(TreeElement productTree){
>        this.productTree = productTree;}
> 2)Add the following to the onCreate method of the controller:
>    productTree = new TreeElement("Root Node",true);
>    productTree.addChild(0, new TreeElement("CHILDNODE",false));
>    productTree.removeChild(0);
> 3)Once the onCreate method is invoked the NPE is thrown.
> Expected results from Test Case 1: 
> The jsp page accessing the tree should be updated with the returned forward 
> and the child that was requested for removal (including any of its own 
> children) should no longer be available in the tree.
> Actual Results:
> NPE in 
> org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java: 
> 194) 
> FULL EXCEPTION: (from Tomcat 5.0.25 exception also thrown on WLS)
> 25 Mar 2005 10:36:54,759 ERROR DefaultExceptionsHandler []: Throwable 
> java.lang.
> NullPointerException unhandled by the current page flow (and any shared flow)
> Throwable: java.lang.NullPointerException
> Stack Trace:
> java.lang.NullPointerException
>         at 
> org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java:194)
>         at 
> org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java:481)
>         at org.apache.beehive.netui.tags.tree.Tree.doTag(Tree.java:841)
>         at 
> org.apache.jsp.NPE.index_jsp._jspx_meth_netui_tree_0(index_jsp.java:236)
>         at 
> org.apache.jsp.NPE.index_jsp._jspx_meth_netui_body_0(index_jsp.java:144)
>         at 
> org.apache.jsp.NPE.index_jsp._jspx_meth_netui_html_0(index_jsp.java:99)
>         at org.apache.jsp.NPE.index_jsp._jspService(index_jsp.java:62)
>         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>         at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
>         at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
>         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:237)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPageFilter.java:279)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:204)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:186)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
>         at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
>         at 
> org.apache.beehive.netui.pageflow.internal.DefaultForwardRedirectHand
> ler.forward(DefaultForwardRedirectHandler.java:125)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(
> PageFlowRequestProcessor.java:1749)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processFor
> wardConfig(PageFlowRequestProcessor.java:1623)
>         at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInt
> ernal(PageFlowRequestProcessor.java:593)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(Pa
> geFlowRequestProcessor.java:854)
>         at 
> org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(A
> utoRegisterActionServlet.java:602)
>         at 
> org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:155)
>         at 
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
> icationFilterChain.java:237)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
> a:520)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>         at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at 
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>         at 
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>         at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
>         at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
> ssConnection(Http11Protocol.java:702)
>         at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
>         at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to