You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Josh Canfield (JIRA)" <ji...@apache.org> on 2010/11/25 02:34:14 UTC
[jira] Commented: (TAP5-1355) Threading issue with
SessionStateObjects
[ https://issues.apache.org/jira/browse/TAP5-1355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12935607#action_12935607 ]
Josh Canfield commented on TAP5-1355:
-------------------------------------
The problem appears to be with a bug fix for TAP5-834.
if (analyzer.isDirty(attributeValue))
{
// TAP5-834: Jetty & Tomcat work by object identity, will not update the attribute
// and fire the session binding event unless there's a real change. So we set the
// attribute to null and then to the new value and that should force the necessary
// notification.
session.setAttribute(attributeName, null);
session.setAttribute(attributeName, attributeValue);
}
For a moment the session attribute is set to null. Sometimes code asks for the session value before it gets to the next line where it sets it back.
> Threading issue with SessionStateObjects
> ----------------------------------------
>
> Key: TAP5-1355
> URL: https://issues.apache.org/jira/browse/TAP5-1355
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.2.4
> Reporter: Moritz Gmelin
> Attachments: Screenshot.png.jpg, taptest.tgz
>
>
> When a page request consists of multiple HTTP request (e.g. page and some dynamically generated images) and all those requests access a SessionStateObject, it happens that a new session (with an empty SSO) is created for some of the request threads.
> I was able to create a very simple example to recreate that problem:
> -A simple page that displays 20 dynamically generated images in a loop.
> -In the page, a SSO, holding a number value is initialized to a random number.
> -Each of the dynamic images read that number and draws it.
> -Make sure that a HTTP-Request is made for every image on the page (by adding some random number to the event link)
> The effect that you'll see after some reloads of the page (maybe you need to reload 30 times) is that some images will draw 0 as SSO value instead of the number set in the page @BeginRender method. Those fields will be marked in red in the demo so you can quickly see them.
> I definitely beleive that tapestry should take care of this. It is a use case for SSOs that is probably too common to ignore.
> Why can't this be automatically integrated into the ApplicationStateManager?
>
> The demo has been deployed here
> http://www.avetana.de/taptest/
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.