I looked at this some more and don't think this solution will work for
all controls. Definitely, some contextual services will be null. For
example, a call to the ControlBeanContext to get the
PageFlowController service will be null in onAcquire() for the
control. Similarly, the ControlContainerContext (ServletBeanContext)
will return null for any calls to getServletRequest() and
getServletResponse() will return null. You can see this by using the
PageFlowControlBeanContext test by uncommenting the "check()" method
in the JPF's onDestroy()... as described in BEEHIVE-1094.

Thoughts?

On 12/11/07, Carlin Rogers <[EMAIL PROTECTED]> wrote:
> Eddie,
>
> I was wondering if you had some thoughts about this solution. I think
> you filed the original bug  while you were doing work to solve a
> deadlock issue with page flows destroy()  and controls
> (BeanContext.globalHierarchyLock). I looked at this and was concerned
> that there could be issues because the RequestContext pushed onto the
> RequestContext stack will have a null request and response. This seems
> like it could be an issue for controls implemented for Context
> Services that require the request. I don't believe there needs to be a
> call to the page flow control container method,
> getControlContainerContext(), probably just the begin/end context
> around the onDestroy() and then the
> JavaControlUtils.uninitJavaControls().  I'm also unsure if there are
> any implications to the locking issues. When you filed this bug, did
> you have some thoughts about the solution?
>
> Thanks,
> Carlin
>
>
> On 12/10/07, Scott L'Hommedieu <[EMAIL PROTECTED]> wrote:
> > I'm forwarding this on behalf of my colleague to expedite the process.
> >
> > From Poorna:
> >
> > For BEEHIVE-1094, I am proposing the following change.
> >
> >
> >  ====
> >
> > /depot/dev/sandbox/beehive/wl92_ga/netui/src/pageflow/org/apache/beehive
> > /netui/pageflow/PageFlowManagedObject.java#1
> >  -
> >
> > E:\P4\dev\sandbox\beehive\wl92_ga\netui\src\pageflow\org\apache\beehive\
> > netui\pageflow\PageFlowManagedObject.java
> >  ====
> >
> >  19a20,21
> >
> > >  import
> > org.apache.beehive.controls.api.context.ControlContainerContext;
> >
> > >
> >
> >  103c105,109
> >
> >  <         onDestroy( session );
> >
> >  ---
> >
> > *>       PageFlowControlContainer cc = new
> > PageFlowControlContainerImpl();*
> >
> > >       ControlContainerContext ccContext =
> >  cc.getControlContainerContext(this);
> >
> > >       cc.beginContextOnPageFlow(this, null, null,
> >  session.getServletContext());
> >
> > >       onDestroy( session );
> >
> > >       cc.endContextOnPageFlow(this);
> >
> >
> >
> >
> >
> >  The highlighted first line - I am not sure on how to create
> >  PageFlowControlContainer using PageFlowControlContainerFactory when
> >  there is no request object. So, I have created the control container
> >  directly here.
> >
> >  regards,
> >
> >  ~Poorna
> >
> > Notice:  This email message, together with any attachments, may contain 
> > information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated 
> > entities,  that may be confidential,  proprietary,  copyrighted  and/or 
> > legally privileged, and is intended solely for the use of the individual or 
> > entity named in this message. If you are not the intended recipient, and 
> > have received this message in error, please immediately return this by 
> > email and then delete it.
> >
>

Reply via email to