0 Replies Latest reply on Feb 11, 2006 5:16 PM by tim.potter

    Non-serializable Attribute exception from Portlet if using e

    tim.potter

      I've deployed my own JSR-168 Portlets from my own WAR file and they show up in the manager fine. I can create instances using the management portlet as well. As soon as I add one of my instances to any page in the portal, if they use expiration-cache > 0, I get the exception that follows.

      I'm using the jboss-portal-2.2.0-bundled (binary) version. All standard settings ... basically unzipped and executed run.bat and deployed my WAR.

      Why am I posting as the error seems obvious you may ask ...
      First, these portlets are known to work fine in Liferay, Pluto, and WebLogic. I only mention this so that you don't waste your time thinking there is a problem with my portlet implements.

      Second, the only attribute I use in the entire Web application (Servlets/JSP/Portlets) is one object that I put into the application context. I added a quick out-in Serialization test and that object is definitely Serializable. I do not use the portletSession, session attributes, or request attributes. My impl couldn't be more trivial. So this error really makes no sense...

      Lastly, if I set <expiration-cache>0</expiration-cache> in portlet.xml, then the Portlet renders fine. So I have a work-around at this point, but I'd like to turn caching on at some point.

      Can you shed some light on why I'm getting this from the cache interceptor?

      14:57:54,828 ERROR [[CommandServlet]] Servlet.service() for servlet CommandServlet threw exception
      java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
       at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1233)
       at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:129)
       at org.jboss.portal.server.aspects.component.CacheInterceptor.invoke(CacheInterceptor.java:137)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.component.ModesInterceptor.invoke(ModesInterceptor.java:38)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.component.WindowStatesInterceptor.invoke(WindowStatesInterceptor.java:32)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.bridge.BridgeInterceptor.invoke(BridgeInterceptor.java:36)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.portlet.aspects.component.SessionPostDispatchInterceptor.invoke(SessionPostDispatchInterceptor.java:61
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$InvokeNextCommand.execute(ContextDispatcherInter
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.portal.server.servlet.CommandServlet.doGet(CommandServlet.java:88)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       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.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
       at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:539)
       at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
       at org.jboss.portal.server.app.impl.AbstractRequestContext.include(AbstractRequestContext.java:234)
       at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$1.include(ContextDispatcherInterceptor.java:60)
       at org.jboss.portal.server.servlet.CommandServlet.include(CommandServlet.java:68)
       at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor.invoke(ContextDispatcherInterceptor.java:66)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.portlet.aspects.component.SessionPreDispatchInterceptor.invoke(SessionPreDispatchInterceptor.java:63)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.component.ContextTrackerInterceptor.invoke(ContextTrackerInterceptor.java:36)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.portlet.aspects.component.SecureTransportInterceptor.invoke(SecureTransportInterceptor.java:56)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.portlet.aspects.component.ValveInterceptor.invoke(ValveInterceptor.java:51)
       at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
       at org.jboss.portal.core.command.RenderWindowCommand.execute(RenderWindowCommand.java:71)
       at org.jboss.portal.core.command.ControllerCommand.dispatch(ControllerCommand.java:65)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
       at org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:72)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:156)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:48)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:55)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
       at org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:94)
       at org.jboss.portal.core.command.CommandContext.chain(CommandContext.java:128)
       at org.jboss.portal.core.command.RenderPageCommand.renderPortlets(RenderPageCommand.java:218)
       at org.jboss.portal.core.command.RenderPageCommand.execute(RenderPageCommand.java:151)
       at org.jboss.portal.core.command.ControllerCommand.dispatch(ControllerCommand.java:65)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
       at org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:72)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:156)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:48)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:45)
       at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
       at org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:94)
       at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:80)
       at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:64)
       at org.jboss.portal.core.CoreController.handle(CoreController.java:177)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       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:141)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
       at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
       at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
       at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:273)
       at $Proxy144.handle(Unknown Source)
       at org.jboss.portal.server.ServerInvocation.dispatch(ServerInvocation.java:63)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
       at org.jboss.portal.core.aspects.server.SubjectAssociationInterceptor.invoke(SubjectAssociationInterceptor.java:35)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.server.PolicyAssociationInterceptor.invoke(PolicyAssociationInterceptor.java:40)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:55)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:56)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:171)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:74)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java:62)
       at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
       at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
       at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
       at org.jboss.portal.server.servlet.PortalServlet.doGet(PortalServlet.java:208)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       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:81)
       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.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
       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:856)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
       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)