Ah, the exception is getting thrown at the end of page rendering, basically during the control's end-of-request callback. The issue is that part of the outer page has already written to the response. I think this is worth a bug, although it should be filed under TBD and not v1.0. I'm not sure if there's anything we can do, but we might be able to make the error-handling behavior different for included pages.

Scott Semyan wrote:

The error is being generated down within a control being called by a
control being called by a control being called by a page flow ;-)
However, I think this error is being caught in the sharedflow here:

   @Jpf.ExceptionHandler(
       forwards={
           @Jpf.Forward(name="errorPage",
path="/resources/beehive/version1/jsps/error.jsp")
       }
   )
   protected Forward handleDataStoreException(DataStoreException ex,
String actionName, String message, Object form) {
       System.err.print("[" + getRequest().getContextPath() + "] ");
       System.err.println("DataStore exception caught in
SharedFlow.jpfs:");
       ex.printStackTrace();
       return new Forward("errorPage");
   }

Here is the full stack trace.

- PreparedStatement: insert into orders (userId, totalPrice, creditCard,
exprDate, cardType, status, shippingAddress, billingAddress) values (?,
?, ?, ?, ?, 'OK', ?, ?) Params: {beehive, 18.50, 098098, jgh, Visa, 1,
1}
- PreparedStatement: select max(orderId) from Orders where userId = ?
Params: {beehive}
- PreparedStatement: update Items set inventoryQuantity = ? where itemId
= ? Params: {1, EST-4}
- PreparedStatement: insert into orderitems values (?, ?, ?) Params: {2,
EST-4, 1}
- Attempting to instantiate SharedFlowControllers for request
/petstoreWeb/checkout/viewOrder.do
- PreparedStatement: select orderId, userId, orderDate, totalPrice,
creditCard,exprDate, cardType, status, shippingAddress, billingAddress
from Orders where orderId = ? and userId = ? Params: {2, beehive}
- PreparedStatement: select addressId, userId, name, phone, addr1,
addr2, city, state, zip, country from Addresses where addressId = ?
Params: {1}
- PreparedStatement: select addressId, userId, name, phone, addr1,
addr2, city, state, zip, country from Addresses where addressId = ?
Params: {1}
- PreparedStatement: select o.itemId, productId, listPrice, unitCost,
supplier, status, attr1, inventoryQuantity as Qty, o.quantity from
OrderItems o, Items i where o.orderId = ? and o.itemId = i.itemId
Params: {2}
- Label: expression null resolved to null, using empty string.
- Handling uncaught Throwable
org.apache.beehive.controls.api.ControlException
- Could not find exception handler method handleException for
org.apache.beehive.controls.api.ControlException.
- Could not find exception handler method handleException for
java.lang.RuntimeException.
[/petstoreWeb] Unhandled exception caught in SharedFlow.jpfs:
org.apache.beehive.controls.api.ControlException: SQL Exception while
attempting to close database connection.[Invalid transaction state.]
        at
org.apache.beehive.controls.system.jdbc.JdbcControlImpl.onRelease(JdbcCo
ntrolImpl.java:133)
        at
org.apache.beehive.controls.system.jdbc.JdbcControlImplInitializer$_reso
urceContextResourceEventsEventAdaptor.onRelease(JdbcControlImplInitializ
er.java:20)
        at
org.apache.beehive.controls.runtime.bean.ResourceContextImpl.release(Res
ourceContextImpl.java:144)
        at
org.apache.beehive.controls.runtime.bean.ControlContainerContext.release
Resources(ControlContainerContext.java:136)
        at
org.apache.beehive.controls.runtime.bean.ControlContainerContext.endCont
ext(ControlContainerContext.java:64)
        at
org.apache.beehive.controls.runtime.servlet.ServletBeanContext.endContex
t(ServletBeanContext.java:92)
        at
org.apache.beehive.netui.pageflow.internal.JavaControlUtils.uninitialize
ControlContext(JavaControlUtils.java:85)
        at
org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPa
geFilter.java:224)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:704)
        at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:590)
        at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:510)
        at
org.apache.beehive.netui.tags.template.IncludeSection.callDefault(Includ
eSection.java:279)
        at
org.apache.beehive.netui.tags.template.IncludeSection.doStartTag(Include
Section.java:233)
        at
org.apache.jsp.site.template_jsp._jspx_meth_netui$1template_includeSecti
on_1(template_jsp.java:312)
        at
org.apache.jsp.site.template_jsp._jspx_meth_netui_body_0(template_jsp.ja
va:232)
        at
org.apache.jsp.site.template_jsp._jspx_meth_netui_html_0(template_jsp.ja
va:163)
        at
org.apache.jsp.site.template_jsp._jspService(template_jsp.java:86)
        at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:324)
        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:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:237)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPag
eFilter.java:279)
        at
org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPa
geFilter.java:204)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:704)
        at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:590)
        at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:510)
        at
org.apache.beehive.netui.tags.template.Template.doEndTag(Template.java:2
80)
        at
org.apache.jsp.checkout.viewOrder_jsp._jspx_meth_netui$1template_templat
e_0(viewOrder_jsp.java:232)
        at
org.apache.jsp.checkout.viewOrder_jsp._jspService(viewOrder_jsp.java:97)
        at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja
va:324)
        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:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:237)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.beehive.netui.pageflow.PageFlowPageFilter.runPage(PageFlowPag
eFilter.java:279)
        at
org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPa
geFilter.java:204)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:186)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:704)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:474)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:409)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:312)
        at
org.apache.beehive.netui.pageflow.internal.DefaultForwardRedirectHandler
.forward(DefaultForwardRedirectHandler.java:127)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(Pag
eFlowRequestProcessor.java:1750)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processForwar
dConfig(PageFlowRequestProcessor.java:1624)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
231)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processIntern
al(PageFlowRequestProcessor.java:591)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageF
lowRequestProcessor.java:852)
        at
org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(Auto
RegisterActionServlet.java:606)
        at
org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlow
ActionServlet.java:162)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:237)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc
her.java:704)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio
nDispatcher.java:474)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:409)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.java:312)
        at
org.apache.beehive.netui.pageflow.internal.DefaultForwardRedirectHandler
.forward(DefaultForwardRedirectHandler.java:127)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(Pag
eFlowRequestProcessor.java:1750)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processForwar
dConfig(PageFlowRequestProcessor.java:1624)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:
231)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processIntern
al(PageFlowRequestProcessor.java:591)
        at
org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageF
lowRequestProcessor.java:852)
        at
org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(Auto
RegisterActionServlet.java:606)
        at
org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlow
ActionServlet.java:162)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:237)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:157)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
textValve.java:198)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo
ntext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
20)
        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:79
9)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC
onnection(Http11Protocol.java:705)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57
7)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:683)
        at java.lang.Thread.run(Unknown Source) Caused by: SQL
Exception: Invalid transaction state.
        at
org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
        at
org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java)
        at
org.apache.derby.impl.jdbc.Util.generateCsSQLException(Util.java)
        at
org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(EmbedConnecti
on.java)
        at
org.apache.derby.impl.jdbc.EmbedConnection.close(EmbedConnection.java)
        at
org.apache.beehive.controls.system.jdbc.JdbcControlImpl.onRelease(JdbcCo
ntrolImpl.java:131)
        ... 104 more


-----Original Message-----
From: Richard Feit Sent: Thursday, May 12, 2005 2:43 PM
To: Beehive Developers
Subject: Re: Error page within other page


Quick question: where is the error being generated in the page flow?  In
an action method?  In a property getter?

Rich

Scott Semyan wrote:



I have a page which is currently generating an error. Instead of being redirected completely to the error page, the first part of my template is being rendered, then the error page.I thought any error would redirect without rendering any of the page that generates the error. The error happens in the page flow so I don't know why it is rendering part of the other page. Again, this seems to be new behavior...

Scott Semyan











Reply via email to