You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Krista Baker (JIRA)" <be...@incubator.apache.org> on 2005/03/25 19:49:17 UTC
[jira] Commented: (BEEHIVE-461) NPE when calling removeChild on a Tree
[ 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