You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by bu...@apache.org on 2002/04/24 21:24:38 UTC

DO NOT REPLY [Bug 8487] New: - Serializability issues in ActionServlet/RequestProcessor

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8487>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8487

Serializability issues in ActionServlet/RequestProcessor

           Summary: Serializability issues in ActionServlet/RequestProcessor
           Product: Struts
           Version: Nightly Build
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Controller
        AssignedTo: struts-dev@jakarta.apache.org
        ReportedBy: beskrowni@alumni.cmu.edu


We frequently get NotSerializableExceptions in WLS 6.1 for the following 
classes:
ActionServlet
RequestProcessor
MessageResources

(we also get them for a couple of tiles classes too, but i'll submit that 
separately...)

in some cases, this is easy to resolve, but in others --- not as easy.

In MessageResources, if you just make the log attribute transient, you're done.

You have to do the same for ActionServlet, but that's not enough.  
ActionServlet also holds onto a RequestProcessor attribute and RequestProcessor 
isn't Serializable.  i'm not smart enough to know for sure if you can just make 
the RequestProcessor attribute transient here, but if you make it Serializable, 
it looks like then you'll have to make Action serializable as well, which may 
not be a desired consequence.

Just for the reference, an example of one of the exception stacks we're seeing 
is included below:

============================

java.io.NotSerializableException: org.apache.struts.action.RequestProcessor
        at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1148)

        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
        at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper
.java:92)
        at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper
.java:64)
        at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppSer
vletContext.java:302)
        at org.apache.struts.action.ActionServlet.getRequestProcessor(ActionServ
let.java:759)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:116
1)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:453)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:265)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:200)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:2456)
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2039)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>