[
http://jira.jboss.com/jira/browse/JBREM-717?page=comments#action_12367037 ]
David Lloyd commented on JBREM-717:
-----------------------------------
So this IllegalStateException is thrown because something didn't
get restarted. But the fact that this IllegalStateException is defined inside the
ServerInvoker object makes it not serializable (ServerInvoker.IllegalStateException is not
serializable because ServerInvoker is not serializable).
This isn't strictly true. The InvalidStateException class is static, so whether or
not it can be Serializable is unrelated to whether the enclosing class is; therefore it
can trivially be made Serializable... in fact, this is probably the most appropriate
solution.
servlet invoker illegal state exception not serializable
--------------------------------------------------------
Key: JBREM-717
URL:
http://jira.jboss.com/jira/browse/JBREM-717
Project: JBoss Remoting
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 2.0.0.GA (Boon)
Reporter: John Mazzitelli
Assigned To: Tom Elrod
Fix For: 2.4.0.Beta1 (Pinto)
I have my server-side using the servlet invoker (I'm inside JBossAS 4.0.5). After I
shutdown and try to restart, I think I might not be restarting properly. If a client
sends in a message, I get this stack trace and an HTTP 500 error comes across on the
client. Here's the server-side stack:
15:59:05,510 WARN [[ServerInvokerServlet]] Servlet.service() for servlet
ServerInvokerServlet threw exception
java.io.NotSerializableException:
org.jboss.remoting.transport.servlet.ServletServerInvoker
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at org.jboss.remoting.marshal.http.HTTPMarshaller.write(HTTPMarshaller.java:69)
at
org.jboss.remoting.transport.servlet.ServletServerInvoker.processRequest(ServletServerInvoker.java:257)
at sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201)
at $Proxy185.processRequest(Unknown Source)
at
org.jboss.remoting.transport.servlet.web.ServerInvokerServlet.processRequest(ServerInvokerServlet.java:127)
at
org.jboss.remoting.transport.servlet.web.ServerInvokerServlet.doPost(ServerInvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
So this IllegalStateException is thrown because something didn't get restarted. But
the fact that this IllegalStateException is defined inside the ServerInvoker object makes
it not serializable (ServerInvoker.IllegalStateException is not serializable because
ServerInvoker is not serializable).
This issue is to document the fact that this exception is not serializable - the whole
"restart didn't fully restart" problem is something that may be my fault.
Recommend that you split out IllegalStateException so you can send it over the wire - or
thrown a java.lang.IllegalStateException.
This is in 2.0.0.GA. I haven't tried to see if this is an issue in later versions.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira