Please, any final ideas on this issue?
> Actually I am not sure there is a problem (I am just asking
> and trying to locate the malfunction I came upon).
>
> The one question I still don't know the answer:
> Where the tool is returned back to the pool?
>
>
>
> ----- Original Message -----
> From: "John McNally" <[EMAIL PROTECTED]>
> To: "Turbine Users List" <[EMAIL PROTECTED]>
> Sent: Wednesday, November 28, 2001 6:32 PM
> Subject: Re: TurbinePullService + UIManager synchornization problem (Maybe
> BUG) ?
>
>
> > Once the object is given to a particular request from the pool, that
> > object will not be given out again until it is returned. Where exactly
> > do you see the problem? I don't see how you can tell that there is a
> > problem with the pool code from the code given below.
> >
> > john mcnally
> >
> >
> > Costas Stergiou wrote:
> > >
> > > iif you look at the code that populates the context with the request
> > > scope tools, it just pools an object from the Pool (doesn't create
> > > a new one each time). So, the same instance can be used for more than
> > > one http requests.
> > >
> > > Here is the code from the TurbinePullService.java:
> > >
> > > /**
> > > * Populate the given context with the request-scope tools
> > > *
> > > * @param context a Velocity Context to populate
> > > * @param data a RunData instance
> > > */
> > > private void populateWithRequestTools(Context context, RunData
data)
> > > {
> > > // Get the PoolService to fetch object instances from
> > > PoolService pool = (PoolService)
> > >
> > > TurbineServices.getInstance().getService(PoolService.SERVICE_NAME);
> > >
> > > // Iterate the tools
> > > Iterator it = requestTools.iterator();
> > > while (it.hasNext())
> > > {
> > > ToolData toolData = (ToolData)it.next();
> > > try
> > > {
> > > Object tool = pool.getInstance(toolData.toolClass);
> > > if (tool instanceof ApplicationTool)
> > > {
> > > // request tools are init'd with a RunData object
> > > ((ApplicationTool)tool).init(data);
> > > }
> > > // put the tool in the context
> > > context.put(toolData.toolName, tool);
> > > }
> > > catch (Exception e)
> > > {
> > > Log.error(
> > > "Could not instantiate tool " +
> > > toolData.toolClassName
> > > + " to add to the context",e);
> > > }
> > > }
> > > }
> > >
> > > The only think that it does is that it init's the tool (with the
> appropriate
> > > rundata) before
> > > adding it to the context. But actually it can be the same object
> instance
> > > that someone else
> > > is using at the same moment!
> > >
> > > Is that so?
> > > That's what I understand from the code above,
> > > Please, correct me if I am wrong.
> > > Thanks,
> > > Costas
> > >
> > > ----- Original Message -----
> > > From: "Eric Dobbs" <[EMAIL PROTECTED]>
> > > To: "Turbine Users List" <[EMAIL PROTECTED]>
> > > Sent: Wednesday, November 28, 2001 5:51 PM
> > > Subject: Re: TurbinePullService + UIManager synchornization problem
> (Maybe
> > > BUG) ?
> > >
> > > >
> > > > On Tuesday, November 27, 2001, at 12:39 AM, Costas Stergiou wrote:
> > > >
> > > > > Actually, when I mean "thread safe" I didn't mean "Java thread"
> > > > > I meant "Request Safe" (actually it is thread safe also) but I
don't
> > > > > want to synchronize on the request tool of course.
> > > > > But on a per-request basis, it is possible that the same instance
of
> the
> > > > > tool is being used at the same time for more than one requests
> > > > > (threads);
> > > > > since a tool is only being taken from the Pool service and init'ed
> but
> > > > > there is no check that this tool is not being used by another
> thread.
> > > >
> > > > Here's how I understand it. Someone correct me if I get this wrong.
> > > >
> > > > If the UIManager is configured to be used in the request scope, then
> > > > a new UIManager object will be instantiated with each request (or
> > > > pulled from the pool). So you get one UIManager object per request,
> > > > and that should fix your problem.
> > > >
> > > > If it is configured for any other scope (which it is by default)
then
> > > > multiple requests (and therefore multiple threads) will be accessing
> > > > the same instance of the UIManager. In this case, the UIManager
needs
> > > > to be modified for thread-safety.
> > > >
> > > > -Eric
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail:
> > > <mailto:[EMAIL PROTECTED]>
> > > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>