In our application, many ajax requests are processed in the same
session, sometimes causing conflicts when they update shared session
information. I found synchronizing the logic within my event handlers to
be useless since many components access shared objects from property
bindings within the tml - outside of the scope of my synchronized block.
In order to combat this globally, I am considering synchronizing all
component event requests on the session:
public static void
contributeAjaxComponentEventRequestHandler(OrderedConfiguration<ComponentEventRequestFilter>
configuration)
{
configuration.addInstance("SessionSynch",
SessionSynchFilter.class);
}
public class SessionSynchFilterimplements ComponentEventRequestFilter
{
@Inject
private HttpServletRequest request;
@Override
public void handle(ComponentEventRequestParameters parameters,
ComponentEventRequestHandler handler) throws IOException
{
synchronized (request.getSession())
{
handler.handle(parameters);
}
}
}
Is this a crazy approach?
Thanks, Paul.
On 30/12/2011 3:43 PM, Josh Canfield wrote:
unless you're dealing with concurrent requests to objects in a users
session. When you're dealing with shared resources, protecting them
from concurrent access is in the developers hands.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org