I recognize the immutability of Strings. My question is how is it immune the
problem. I see the same stale value problem possible if I do
String name = "Mary";
session.setAttribute("username", name);
name = "John";
Sri
> -----Original Message-----
> From: Shing Hing Man [mailto:[EMAIL PROTECTED]
> Sent: Friday, April 08, 2005 10:59 AM
> To: Tapestry users
> Subject: Re: Clustering mutable objects
>
> Java.lang.String is immutable - it has no setter method.
>
> Shing.
>
>
> --- Sri Sankaran <[EMAIL PROTECTED]> wrote:
> > I was reading Tapestry In Action and did not understand the
> > implication of clustering a mutable object. Hope you can explain.
> >
> > To set the stage, the section states that an app server --
> such as Web
> > Logic -- broadcasts a change to all servers in a cluster in
> response
> > to an invocation of the setAttribute method of an HttpSession. The
> > article goes on differentiate mutable and immutable objects
> placed in
> > a session.
> > It says that depending on the sequence of the steps, the value of a
> > session attribute on server in a cluster can be stale. For example:
> >
> > session.setAttribute("some token", x); x.setSomeValue("some value");
> >
> > In this case, since the object referred to by 'x' is being modified
> > *after* a call to setAttribute, it may not get propagated to all
> > servers in a cluster.
> > The cagey *may not* is because we may get lucky if the app server
> > hasn't got around to serializing 'x'
> > and broadcasting it, before the application invokes the
> setSomeValue
> > method.
> >
> > My question is: How is this any different if x were an immutable
> > object -- such as a String? Wouldn't we have the same problem?
> >
> > Sri
> >
>
> Home page :
> http://uk.geocities.com/matmsh/index.html
>
> Send instant messages to your online friends
> http://uk.messenger.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]