[ https://issues.apache.org/struts/browse/WW-2507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44161#action_44161 ]
Rainer Hermanns commented on WW-2507: ------------------------------------- The I18N interceptor in xwork 2.1.2 is now patched. The session object is synchronized, but this is mainly xwork may use other implementations than S2 SessionMap. However, I think we need to adjust the SessionMap to take care of invalid session exceptions. > 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.