Beehive
  1. Beehive
  2. BEEHIVE-756

Major badness when moving between page flows in the same request, with multiple concurrent requests

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: V1Alpha, V1Beta, v1m1
    • Fix Version/s: 1.0
    • Component/s: NetUI
    • Labels:
      None

      Description

      There's actually a whole class of bugs like this; the repro below is only one example.

      Repro:

      • Add the attached page flows to a webapp, build, and hit /first/Controller.jpf.
      • Click the "goNested" twice quickly.

      You'll see the following stacktrace on the console:

      org.apache.beehive.netui.pageflow.EmptyNestingStackException: Empty nesting stack for returned action nestedDone from page flow /nested/Controller.jpf.
      at org.apache.beehive.netui.pageflow.internal.DefaultActionForwardHandler.doNestingReturn(DefaultActionForwardHandler.java:464)
      at org.apache.beehive.netui.pageflow.internal.DefaultActionForwardHandler.doForward(DefaultActionForwardHandler.java:167)
      at org.apache.beehive.netui.pageflow.FlowController.forwardTo(FlowController.java:491)
      at org.apache.beehive.netui.pageflow.PageFlowController.forwardTo(PageFlowController.java:896)
      at org.apache.beehive.netui.pageflow.FlowController.internalExecute(FlowController.java:428)
      at org.apache.beehive.netui.pageflow.PageFlowController.internalExecute(PageFlowController.java:282)
      at org.apache.beehive.netui.pageflow.FlowController.execute(FlowController.java:306)
      at org.apache.beehive.netui.pageflow.internal.FlowControllerAction.execute(FlowControllerAction.java:48)
      at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.access$201(PageFlowRequestProcessor.java:109)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$ActionRunner.execute(PageFlowRequestProcessor.java:1979)
      at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors$WrapActionInterceptorChain.continueChain(ActionInterceptors.java:63)
      at org.apache.beehive.netui.pageflow.interceptor.action.internal.ActionInterceptors.wrapAction(ActionInterceptors.java:86)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processActionPerform(PageFlowRequestProcessor.java:2048)
      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:592)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:856)
      at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:600)
      at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:163)
      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(ApplicationFilterChain.java:237)
      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.DefaultForwardRedirectHandler.forward(DefaultForwardRedirectHandler.java:127)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlowRequestProcessor.java:1755)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processPageFlowRequest(PageFlowRequestProcessor.java:758)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.processInternal(PageFlowRequestProcessor.java:517)
      at org.apache.beehive.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:856)
      at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:600)
      at org.apache.beehive.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:163)
      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

      1. jira756.zip
        3 kB
        Rich Feit

        Issue Links

          Activity

          Hide
          Rich Feit added a comment -

          This is a nasty issue. I have the beginnings of a working fix, which involves deferring session writes until the end of a chain of forwarded requests. It's way too involved to go into the current release.

          Show
          Rich Feit added a comment - This is a nasty issue. I have the beginnings of a working fix, which involves deferring session writes until the end of a chain of forwarded requests. It's way too involved to go into the current release.
          Hide
          Rich Feit added a comment -

          Repro page flows.

          Show
          Rich Feit added a comment - Repro page flows.
          Hide
          Rich Feit added a comment -

          This should be in TBD, not V1.

          Show
          Rich Feit added a comment - This should be in TBD, not V1.
          Hide
          Rich Feit added a comment -

          Fixed with revision 188692.

          Show
          Rich Feit added a comment - Fixed with revision 188692.
          Hide
          Alejandro Ramirez added a comment -

          Please verify in trunk.

          Show
          Alejandro Ramirez added a comment - Please verify in trunk.
          Hide
          Julie Zhuo added a comment -

          Verified with rev227121. The problem can no longer be reproduced.

          Show
          Julie Zhuo added a comment - Verified with rev227121. The problem can no longer be reproduced.

            People

            • Assignee:
              Julie Zhuo
              Reporter:
              Rich Feit
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development