Each request has its own component instances if the default state
manager of myfaces is used (client & server state are handled equal).
If a user is using a component binding and stores this component in a
session or application scoped bean he definitely will have problems
since this component instance will be shared across the requests. If a
user uses a session or application scoped bean he must take care for
synchronizing them.

I like Vesas solution since it is easy to implement and the existing
application must not be changed.

2005/11/9, [EMAIL PROTECTED]
<[EMAIL PROTECTED]>:
>
> A second thought:
>
> There migth also be some important issues with the new sever-side state
> saving. I'm not sure how it is implemented in detail. The state consists of
> the component tree and the state.
> Now if concurrent requests are processed for the same view, every request
> should get a individual component tree otherwise fatal side effects would
> occure within the components.
>
> Mathias can you clarify the way how the component tree is saved and restored
> with the new implementation?
>
>
>
>
> [EMAIL PROTECTED] schrieb am 09.11.2005 09:26:09:
>
>  > You'll need to synchronize access to your session objects - there
>  > really is not much way around it.
>  >
>  > Alternative is to have everything client side, then you don't have any
>  > problems on the server.
>  >
>  > Except the performance, of course ;)
>  >
>  > regards,
>  >
>  > Martin
>  >
>  > On 11/9/05, Simon Kitching <[EMAIL PROTECTED]> wrote:
>  > > Hi,
>  > >
>  > > I've noticed that if I click multiple times on a component that does a
>  > > submit then quite often I get an exception generated in the server.
>  > >
>  > > The most obvious case for me is a table with a sortable header; if I
>  > > pretend to be impatient and click several times on the sort header then
>  > > usually I end up with an exception page.
>  > >
>  > > I believe the cause is that the browser has submitted several
> concurrent
>  > > post requests to the server; multiple threads within the server then
> try
>  > > to run the view at the same time, and as view components are not
>  > > threadsafe all sorts of nasty side-effects occur. An example of a
>  > > non-threadsafe component is a UIData with session scope; it's got only
>  > > one rowIndex, so multiple threads trying to iterate over the rows in
> the
>  > > table is bound to result in something unpleasant.
>  > >
>  > > How do people handle this? I can't force my users to go on a training
>  > > course about waiting for a page to complete before clicking again. And
> I
>  > > can't live with exception pages being rendered to them if they click
> too
>  > > quick.
>  > >
>  > > Thanks,
>  > >
>  > > Simon
>  > >
>  >
>  >
>  > --
>  >
>  > http://www.irian.at
>  >
>  > Your JSF powerhouse -
>  > JSF Consulting, Development and
>  > Courses in English and German
>  >
>  > Professional Support for Apache MyFaces
>


--
Mathias

Reply via email to