1 Reply Latest reply on Aug 22, 2006 2:32 AM by shane.bryzak

    Problem with remote.js in IE7

    bpatters

      I'm using the Seam 1.0.1 GA and when using the remoting interface
      with Internet Explorer 7 beta 3 I get the following error:

      Error on line 412 remote.js 'field' is null or not an object

      It works fine in Firefox. I've noticed that IE does not like trailing , in arrays or "object" definitions so perhaps that is the problem.

      Additionally I get the following error when unmarshalling an Entity Bean with a member of type long, when sending null for the long value via the remote call (I'm sending only a few values and the long in question is the @ID of the entity)
      Apparently the remoting layer uses the wrapping/unwrapping nature of JDK 5 for handling native longs etc, but this doesn't work when using null.
      I'm not sure if this is a bug or a limitation, for now I'll just set the ID's of all my entities to 0 and make sure I set every long/int/float etc value to something valid to avoid this unmarshalling problem.

      java.lang.RuntimeException: Could not set field value.
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:101)
      at org.jboss.seam.remoting.ExecutionHandler.unmarshalCalls(ExecutionHandler.java:172)
      at org.jboss.seam.remoting.ExecutionHandler.handle(ExecutionHandler.java:88)
      at org.jboss.seam.remoting.SeamRemotingServlet.doPost(SeamRemotingServlet.java:56)
      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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
      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.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)
      Caused by: java.lang.IllegalArgumentException
      at sun.reflect.UnsafeLongFieldAccessorImpl.set(UnsafeLongFieldAccessorImpl.java:62)
      at java.lang.reflect.Field.set(Field.java:656)
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:97)
      ... 24 more
      2006-08-22 00:25:50,218 ERROR [org.jboss.seam.remoting.ExecutionHandler] Error during remote request
      java.lang.RuntimeException: Could not set field value.
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:101)
      at org.jboss.seam.remoting.ExecutionHandler.unmarshalCalls(ExecutionHandler.java:172)
      at org.jboss.seam.remoting.ExecutionHandler.handle(ExecutionHandler.java:88)
      at org.jboss.seam.remoting.SeamRemotingServlet.doPost(SeamRemotingServlet.java:56)
      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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
      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.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)
      Caused by: java.lang.IllegalArgumentException
      at sun.reflect.UnsafeLongFieldAccessorImpl.set(UnsafeLongFieldAccessorImpl.java:62)
      at java.lang.reflect.Field.set(Field.java:656)
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:97)
      ... 24 more
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Lifecycle] After request, destroying contexts
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying event context
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.core.manager
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying conversation context
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Lifecycle] flushing server-side conversation context
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End web request
      2006-08-22 00:25:50,218 DEBUG [org.jboss.seam.remoting.ExecutionHandler] ended request
      2006-08-22 00:26:07,781 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin web request
      2006-08-22 00:26:07,781 DEBUG [org.jboss.seam.Component] instantiating Seam component: org.jboss.seam.core.manager
      2006-08-22 00:26:07,781 DEBUG [org.jboss.seam.core.Manager] No stored conversation
      2006-08-22 00:26:07,781 DEBUG [org.jboss.seam.Component] instantiating Seam component: user
      2006-08-22 00:26:07,781 ERROR [org.jboss.seam.remoting.ExecutionHandler] Error unmarshalling calls from request
      java.lang.RuntimeException: Could not set field value.
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:101)
      at org.jboss.seam.remoting.ExecutionHandler.unmarshalCalls(ExecutionHandler.java:172)
      at org.jboss.seam.remoting.ExecutionHandler.handle(ExecutionHandler.java:88)
      at org.jboss.seam.remoting.SeamRemotingServlet.doPost(SeamRemotingServlet.java:56)
      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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
      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.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)
      Caused by: java.lang.IllegalArgumentException
      at sun.reflect.UnsafeLongFieldAccessorImpl.set(UnsafeLongFieldAccessorImpl.java:62)
      at java.lang.reflect.Field.set(Field.java:656)
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:97)
      ... 24 more
      2006-08-22 00:26:07,781 ERROR [org.jboss.seam.remoting.ExecutionHandler] Error during remote request
      java.lang.RuntimeException: Could not set field value.
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:101)
      at org.jboss.seam.remoting.ExecutionHandler.unmarshalCalls(ExecutionHandler.java:172)
      at org.jboss.seam.remoting.ExecutionHandler.handle(ExecutionHandler.java:88)
      at org.jboss.seam.remoting.SeamRemotingServlet.doPost(SeamRemotingServlet.java:56)
      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.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
      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.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)
      Caused by: java.lang.IllegalArgumentException
      at sun.reflect.UnsafeLongFieldAccessorImpl.set(UnsafeLongFieldAccessorImpl.java:62)
      at java.lang.reflect.Field.set(Field.java:656)
      at org.jboss.seam.remoting.wrapper.BeanWrapper.unmarshal(BeanWrapper.java:97)
      ... 24 more

      The enveloper is:

      <envelope><header><context><conversationId>1</conversationId></context></header><body><call component="userInformationSession" method="registerNewUser" id="1">
      <params><param><ref id="0"/></param></params><refs><ref id="0"><bean type="user">
      <member name="password"><str>afdf</str></member>
      <member name="userName"><str>asdfsadf</str></member>
      <member name="events"><null/></member>
      <member name="verified"><null/></member>
      <member name="verificationID"><null/></member>
      <member name="properties"><null/></member>
      <member name="webURL"><null/></member>
      <member name="publicDir"><null/></member>
      <member name="secretQuestion"><str>afdaf</str></member>
      <member name="secretAnswer"><str>asdfaf</str></member>
      <member name="userRoles"><null/></member>
      <member name="privateDir"><null/></member>
      <member name="ID"><null/></member>
      </bean></ref></refs></call></body></envelope>


        • 1. Re: Problem with remote.js in IE7
          shane.bryzak

          The remote.js problem is fixed in CVS. Is the type of your @Id field a primitive long, or a java.lang.Long? If it's a primitive, then you won't be able to set it to null, and I'd suggest using the wrapper type instead.