Exception when viewing GB2
Description
Activity

James Renfro August 31, 2009 at 1:56 PM
Closing this issue since it does not require QA testing.

James Renfro August 20, 2009 at 12:47 PM
Looks like the issue on this one was that Georgia Tech had an extra / separator in their path on the test server. This causes problems for GWT, which is doing a security check and since // resolves to the same path as /, it tries to set the resolved uri to the text uri and runs into a problem.
This could maybe be considered a bug in GWT, and certainly needs to be seen as a known issue to be shared with institutions that are considering deploying gb2.

Stuart Freeman August 20, 2009 at 11:03 AM
There are some messages in the logs:
INFO: ERROR: The module path requested, //portal/tool/9b95b8ba-8b98-45d3-9157-ef97b59e03fc/org.sakaiproject.gradebook.gwt.GradebookApplication/, is not in the same web application as this servlet, /portal/tool/9b95b8ba-8b98-45d3-9157-ef97b59e03fc. Your module ma
y not be properly configured or your client and server code maybe out of date. (2009-08-20 13:58:19,609 TP-Processor7_org.apache.catalina.core.ContainerBase.[Catalina].[localhost]./gradebook2-client)
INFO: WARNING: Failed to get the SerializationPolicy '914A04892CC24D80B75664D179883E68' for module 'https://s-square.gatech.edu//portal/tool/9b95b8ba-8b98-45d3-9157-ef97b59e03fc/org.sakaiproject.gradebook.gwt.GradebookApplication/'; a legacy, 1.3.3 compatible, se
rialization policy will be used. You may experience SerializationExceptions as a result. (2009-08-20 13:58:19,610 TP-Processor7_org.apache.catalina.core.ContainerBase.[Catalina].[localhost]./gradebook2-client)
ERROR: An IncompatibleRemoteServiceException was thrown while processing this call. (2009-08-20 13:58:19,624 TP-Processor7_org.apache.catalina.core.ContainerBase.[Catalina].[localhost]./gradebook2-client)
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type 'org.sakaiproject.gradebook.gwt.client.action.Action$EntityType' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For securit
y purposes, this type will not be deserialized.
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:298)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:163)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
at org.gwtwidgets.server.spring.GWTSpringController.handleRequest(GWTSpringController.java:82)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:565)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.gradebook.gwt.server.SecurityFilter.doFilter(SecurityFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:459)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1346)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:63)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1189)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:602)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.hyperic.hq.product.servlet.filter.JMXFilter.doFilter(JMXFilter.java:324)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'org.sakaiproject.gradebook.gwt.client.action.Action$EntityType' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security
purposes, this type will not be deserialized.
at com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy.validateDeserialize(LegacySerializationPolicy.java:123)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:490)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:61)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader$ValueReader$8.readValue(ServerSerializationStreamReader.java:131)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:372)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:287)
... 51 more
ERROR: An IncompatibleRemoteServiceException was thrown while processing this call. (2009-08-20 13:58:19,714 TP-Processor12_org.apache.catalina.core.ContainerBase.[Catalina].[localhost]./gradebook2-client)
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type 'org.sakaiproject.gradebook.gwt.client.action.Action$EntityType' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For securit
y purposes, this type will not be deserialized.
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:298)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:163)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
at org.gwtwidgets.server.spring.GWTSpringController.handleRequest(GWTSpringController.java:82)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:565)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.gradebook.gwt.server.SecurityFilter.doFilter(SecurityFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:459)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1346)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doTool(ToolHandler.java:163)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:86)
at org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:63)
at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1189)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:602)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.hyperic.hq.product.servlet.filter.JMXFilter.doFilter(JMXFilter.java:324)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'org.sakaiproject.gradebook.gwt.client.action.Action$EntityType' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security
purposes, this type will not be deserialized.
at com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy.validateDeserialize(LegacySerializationPolicy.java:123)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:490)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:61)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader$ValueReader$8.readValue(ServerSerializationStreamReader.java:131)
at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:372)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:287)
... 51 more

James Renfro August 20, 2009 at 10:18 AM
This is most likely a deployment problem on your instance.
My best guess is that the [GUID].gwt.rpc file in the webapp directory gradebook2-client/org.sakaiproject.gradebook.gwt.GradebookApplication is not being made accessible to your gwt rpc servlet.
This file is the serialization policy file for GWT, and if it's missing then GWT requires each serialized class to implement IsSerializable, which is the old GWT 1.3 method that is now deprecated.
I've seen this once before, but I can't remember how it happened – might have been from building/deploying the app while Tomcat was running, or else some problem with the Spring MVC mapping.
We're running 1.0.0 in production now with a couple of small patches applied. Conceivably there could be bug in deployment if those patches aren't applied, but I think it's unlikely, and particularly unlikely if you're seeing this problem.
I assume you don't have any errors in the logs, right?
Details
Assignee
UnassignedUnassignedReporter
Carl HallCarl HallComponents
Affects versions
Priority
Blocker
Details
Details
Assignee
Reporter

The following exception is seen when trying to view GB 2:
Type 'org.sakaiproject.gradebook.gwt.client.action.Action$EntityType' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized. :
Nothing is rendered after this message is displayed.