You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2008/06/13 03:28:05 UTC
[jira] Updated: (WW-2507) I18nInterceptor's intercept method is not
thread safe
[ https://issues.apache.org/struts/browse/WW-2507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Don Brown updated WW-2507:
--------------------------
Fix Version/s: 2.1.3
> I18nInterceptor's intercept method is not thread safe
> -----------------------------------------------------
>
> Key: WW-2507
> URL: https://issues.apache.org/struts/browse/WW-2507
> Project: Struts 2
> Issue Type: Bug
> Components: Core Interceptors
> Affects Versions: 2.0.11
> Reporter: Bob Tiernay
> Fix For: 2.1.3
>
>
> The following excerpt from I18nInterceptor's intercept method is not thread safe:
> //save it in session
> Map session = invocation.getInvocationContext().getSession(); <--- start of atomic operation
> if (session != null) {
> if (requested_locale != null) {
> Locale locale = (requested_locale instanceof Locale) ?
> (Locale) requested_locale : LocalizedTextUtil.localeFromString(requested_locale.toString(), null);
> if (log.isDebugEnabled()) {
> log.debug("store locale=" + locale);
> }
> if (locale != null) {
> session.put(attributeName, locale);
> }
> }
> //set locale for action
> Object locale = session.get(attributeName); <--- session may no longer exist due to concurrecy.
> if (locale != null && locale instanceof Locale) {
> if (log.isDebugEnabled()) {
> log.debug("apply locale=" + locale);
> }
> saveLocale(invocation, (Locale)locale);
> }
> }
> Between the calls of:
> 1. Map session = invocation.getInvocationContext().getSession(); , and
> 2. Object locale = session.get(attributeName);
> the session may have been invalidated. In my particular application, this was indeed the case. This causes an invalid session exception to be raised.
> The recommended handling would be to synchronize this portion of the method.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.