[
http://issues.apache.org/jira/browse/BEEHIVE-461?page=comments#action_61561 ]
Krista Baker commented on BEEHIVE-461:
--------------------------------------
Test/Repro comment: The TreeElement item that is used for calling removeChild
does not have to be the root for the NPE to occur. However, there is a
difference in the location of the exception if removeChild is called from
another child element. The NPE occurs on line 189 of TreeRenderer.java instead
of line 194.
Code Example:
Tree Element childTree = new TreeElement("childwithchild",true);
Tree Element productTree = new TreeElement("root",true);
onCreate(){
childTree.addChild(0, new TreeElement("childschild",true));
productTree.addChild(0,childTree);
childTree.removeChild(0);
}
When the Controller is invoked, the follwoing NPE will occur (shortened to
highlight the difference is only in the line number where the exception is
thrown):
Throwable: java.lang.NullPointerException
Stack Trace:
java.lang.NullPointerException
at
org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java:189)
at
org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java:481)
at
org.apache.beehive.netui.tags.tree.TreeRenderer.render(TreeRenderer.java:481)
at org.apache.beehive.netui.tags.tree.Tree.doTag(Tree.java:841)
> 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