Uploaded image for project: 'Struts 2'
  1. Struts 2
  2. WW-1621

ScopeInterceptor handling of null values for session attributes breaks under some circumstances

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.3
    • Core Interceptors
    • None

    Description

      See: http://jira.opensymphony.com/browse/WW-1386

      With the <distributable /> flag set in the web.xml file and the web application deployed to Tomcat, when the ScopeInterceptor tries to set a null value, which in this case is a ScopeInterceptor.NULL object, there is an exception thrown because this object is not serializable.

      The problem seems to be the nullConvert() method which takes the null and makes it an object of an anonymous class, a custom ScopeInterceptor which doesn't do this conversion works fine under these circumstances.

      The stack trace is this exception is:

      java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
      org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1255)
      org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1233)
      org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:129)
      com.opensymphony.webwork.dispatcher.SessionMap.put(SessionMap.java:161)
      com.opensymphony.webwork.interceptor.ScopeInterceptor.beforeResult(ScopeInterceptor.java:324)
      com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:200)
      com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
      com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
      com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
      com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
      com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
      com.opensymphony.webwork.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:88)
      com.atsva.glin.web.SetCharacterEncoding.doFilter(SetCharacterEncoding.java:47)

      Attachments

        Activity

          People

            mrdon Donald J. Brown
            pluppens Philip Luppens
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: