[ http://issues.apache.org/jira/browse/BEEHIVE-1100?page=all ]

Eddie O'Neil updated BEEHIVE-1100:
----------------------------------

    Fix Version:     (was: v.next)
      Assign To:     (was: Eddie O'Neil)

In looking at this a bit more, it doesn't seem like a common scenario (no one 
else has reported it), and I can only make it happen in contrived situations 
with several threads pounding on the same HttpSession.  

I'm going to defer this till a subsequent release, but if anyone else runs into 
this problem, feel free to ask for a fix...

> page flow shared by two threads can be destroyed by one but isn't 
> reinitialized by the other
> --------------------------------------------------------------------------------------------
>
>          Key: BEEHIVE-1100
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-1100
>      Project: Beehive
>         Type: Bug

>   Components: NetUI
>     Versions: V1, 1.0.1, v.next
>     Reporter: Eddie O'Neil

>
> This is a JPF threading issue where two threads can start off sharing the 
> same Page Flow.  When one thread destroys that JPF, the second thread 
> continues to reuse the destroyed instance.  This can cause problems when 
> re-running the destroyed JPF because any Controls or other fields cleared in 
> the "onDestroy" lifecycle handler can cause unexpected exceptions / behavior. 
>  For example:
> Thread 1:  current page flow is /a/A.jpf
> 1: reference /a/A.jpf
> 2: execute action "step 2"
> 5: attempt to execute action "step 3" -- strange behavior because
> internal state has been whacked by "destroy".
> Thread 2: current page flow is /a/A.jpf
> 3: reference /a/A.jpf
> 4: forward to /b/B.jpf -- causes onDestroy to be called on A.jpf
> I believe that the fix is to have the Thread1 re-create the JPF mid-request.  
> This means that Thread1 will lose the state /a/A.jpf, but in the current 
> architecture, that makes sense because the JPF was destroyed.  When the JPF 
> is re-created, it will attempt to run action "step2" which could work but 
> might also fail with an error or redirect to the beginning of a wizard (for 
> example).  Fortunately, this scenario is the same as the case where the user 
> types this into their browser window:
>   http://localhost:8080/fooWeb/somewizard/step2.do
> and the action either works or fails.  It's just like starting a JPF over 
> again in the middle of the request.

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to