List Info

Thread: DeferredSessionStorageHandler race condition?




DeferredSessionStorageHandler race condition?
user name
2007-06-27 14:36:08
We are having an issue in our application whereby we have a
request
filter that calls PageFlowUtils.getCurrentPageFlow(
HttpServletRequest
request, ServletContext servletContext ).  Sometimes(but not
always)
this is returning null even though the filter is running for
the request
after the begin() method is called on our Controller. 
Here's the
sequence of events:
1) Controller's begin() method is called
2) begin() forwards to another action with redirect = true
3) request filter fires
 
Now, at the point the request filter fires for the request
corresponding
to the next action the DeferredSessionStorageHandler may not
have yet
applied its changes so _netui:curPageFlow isn't yet
committed to the
session and this causes PageFlowUtils.getCurrentPageFlow to
return null.
This usually only happens the first time I try to run the
flow.  Even if
I close my browser and make sure I get a new session, the
following
attempts all seem to work just fine.  I'm not sure what it
is about the
first run that seems to make things fail.  Here's the
relevant log
information:
2007-06-27 14:22:01,000|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
------------
------------------- Start Request #1
-----------------------------------
2007-06-27 14:22:01,078|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|beginAct
ionRequest:
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224
2007-06-27 14:22:01,156|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
Got request
for /csm/dispatcher/Controller.jpf, forwarding to
/dispatcher/begin.do
2007-06-27 14:22:01,187|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:nestingStack
2007-06-27 14:22:01,187|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
------------
------------------- Start Request #2
-----------------------------------
2007-06-27 14:22:01,187|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|beginAct
ionRequest:
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224
2007-06-27 14:22:01,187|INFO |csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
Attempting
to instantiate SharedFlowControllers for request
/csm/dispatcher/begin.do
2007-06-27 14:22:01,187|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:sharedFlow:global.Global
2007-06-27 14:22:01,187|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:sharedFlow:global.Global
2007-06-27 14:22:01,203|INFO |csm                
|Thread-16
|org.apache.beehive.netui.pageflow.FlowControllerFactory|No
Global.app
was found in /csm
2007-06-27 14:22:01,234|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:sharedFlow:global.Global
2007-06-27 14:22:01,234|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curLongLivedModule
2007-06-27 14:22:01,234|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curPageFlow
2007-06-27 14:22:01,234|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:nestingStack
2007-06-27 14:22:01,234|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.FlowControllerFactory|Cre
ating
PageFlowController of type dispatcher.Controller
2007-06-27 14:22:01,484|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.JavaControlUtils
|No control
field annotations were found for dispatcher.Controller5acb37
2007-06-27 14:22:01,515|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:PageFlowControlContainerInstance
2007-06-27 14:22:01,546|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|setAttribute:
_netui:PageFlowControlContainerInstance=org.apache.beehive.n
etui.pageflo
w.PageFlowControlContainerImplaab045
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:PageFlowControlContainerInstance
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|flowCont
rollerCreated: FlowController=dispatcher.Controller5acb37,
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curLongLivedModule
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curPageFlow
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curLongLivedModule
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curPageFlow
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|setAttribute: _netui:curPageFlow=dispatcher.Controller5acb37
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|removeAttribute: _netui:curLongLivedModule
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curLongLivedModule
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:curPageFlow
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|removeAttribute: _netui:facesBacking
2007-06-27 14:22:01,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:facesBacking
2007-06-27 14:22:01,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
Populating
bean properties from this request
2007-06-27 14:22:02,046|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.script.common.ImplicitObjectUtil|u
sing form of
type:
org.apache.beehive.netui.pageflow.internal.AnyBeanActionForm

2007-06-27 14:22:02,421|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|getAttribute: _netui:PageFlowControlContainerInstance
2007-06-27 14:22:02,421|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|actionRa
ised: FlowController=dispatcher.Controller5acb37,
ActionMapping=[delegate to
ActionConfig[path=/begin,name=baseConfigBean,parameter=com.m
otive.commsf
low.arch.pageflow.ComponentPageFlowController,scope=request,
type=org.apa
che.beehive.netui.pageflow.internal.FlowControllerAction],
ActionForm=[AnyBeanActionForm wrapper for
com.motive.commsflow.arch.component.BaseConfigBean19a9deb],
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224
2007-06-27 14:22:02,562|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.FlowController|Invoking
action method
begin(com.motive.commsflow.arch.component.BaseConfigBean)
2007-06-27 14:22:02,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DefaultActionFor
wardHandler|
Redirecting to /start.do
2007-06-27 14:22:02,625|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|actionSu
ccess: FlowController=dispatcher.Controller5acb37,
ActionMapping=[delegate to
ActionConfig[path=/begin,name=baseConfigBean,parameter=com.m
otive.commsf
low.arch.pageflow.ComponentPageFlowController,scope=request,
type=org.apa
che.beehive.netui.pageflow.internal.FlowControllerAction],
ActionForm=[AnyBeanActionForm wrapper for
com.motive.commsflow.arch.component.BaseConfigBean19a9deb],
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224,
ActionForward=ForwardConfig[name=start,path=/start.do,redire
ct=true,cont
extRelative=false], TimeTakenMillis=204
2007-06-27 14:22:02,640|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
processForwa
rdConfig(ForwardConfig[name=start,path=/start.do,redirect=tr
ue,contextRe
lative=false])
2007-06-27 14:22:02,687|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|endActio
nRequest:
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224,
TimeTakenMillis=1500
2007-06-27 14:22:02,687|DEBUG|                    |[ACTIVE]
ExecuteThread: '2' for queue: 'weblogic.kernel.Default
(self-tuning)'|com.motive.commsflow.arch.pageflow.ComponentR
equestFilter
|Entering ComponentRequestFilter...
2007-06-27 14:22:02,687|DEBUG|                    |[ACTIVE]
ExecuteThread: '2' for queue: 'weblogic.kernel.Default
(self-tuning)'|org.apache.beehive.netui.pageflow.internal.De
ferredSessio
nStorageHandler|getAttribute: _netui:curLongLivedModule
2007-06-27 14:22:02,687|DEBUG|                    |[ACTIVE]
ExecuteThread: '2' for queue: 'weblogic.kernel.Default
(self-tuning)'|org.apache.beehive.netui.pageflow.internal.De
ferredSessio
nStorageHandler|getAttribute: _netui:curPageFlow
2007-06-27 14:22:02,687|DEBUG|                    |[ACTIVE]
ExecuteThread: '2' for queue: 'weblogic.kernel.Default
(self-tuning)'|com.motive.commsflow.arch.pageflow.ComponentR
equestFilter
|componentController = null
2007-06-27 14:22:02,718|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
------------
-------------------- End Request #2
------------------------------------
2007-06-27 14:22:02,718|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Applying changes for request
/csm/dispatcher/Controller.jpf.
Identity: 3845217
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.util.internal.ServletUtils|Using
session lock
of type: class
weblogic.servlet.internal.session.MemorySessionData
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Removing attribute _netui:facesBacking from the session.
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Removing attribute _netui:curLongLivedModule from the
session.
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Committing attribute
_netui:PageFlowControlContainerInstance to the
session.
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Committing attribute _netui:curPageFlow to the session.
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Ensure failover for attribute _netui:curPageFlow
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.internal.DeferredSessionS
torageHandle
r|Completed applying changes for request
/csm/dispatcher/Controller.jpf.
Identity: 3845217
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.DefaultPageFlowEventRepor
ter|endActio
nRequest:
Request=org.apache.beehive.netui.pageflow.internal.PageFlowR
equestWrappe
r3aac61,
Response=weblogic.servlet.internal.ServletResponseImplb3224,
TimeTakenMillis=1687
2007-06-27 14:22:02,765|DEBUG|csm                
|Thread-16
|org.apache.beehive.netui.pageflow.PageFlowRequestProcessor|
------------
-------------------- End Request #1
------------------------------------

 
Should I log a bug, or am I doing something wrong?  I
haven't yet tried
to create a simple test case.  I'm on WebLogic 9.2 MP1, BTW.
 If it is a
bug, is there any suggested work around?  I'd like/need to
keep my
redirect = true.  Thanks,
Micah

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )