Well, things didn't go like I had hoped. I made the code changes and
then promoted to QA and instead of UnmarshalException, I get:
java.lang.ClassCastException: cannot assign instance of
com.google.gdata.util.ContentType to field
com.google.gdata.util.ServiceException.responseContentType of type
com.google.gdata.util.ContentType in instance of
com.google.gdata.util.AuthenticationException
at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues
(ObjectStreamClass.java:2057)
at java.io.ObjectStreamClass.setObjFieldValues
(ObjectStreamClass.java:1239)
at java.io.ObjectInputStream.defaultReadFields
(ObjectInputStream.java:1938)
at java.io.ObjectInputStream.readSerialData
(ObjectInputStream.java:1856)
at java.io.ObjectInputStream.readOrdinaryObject
(ObjectInputStream.java:1743)
at java.io.ObjectInputStream.readObject0
(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields
(ObjectInputStream.java:1932)
at java.io.ObjectInputStream.readSerialData
(ObjectInputStream.java:1856)
at java.io.ObjectInputStream.readOrdinaryObject
(ObjectInputStream.java:1743)
at java.io.ObjectInputStream.readObject0
(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields
(ObjectInputStream.java:1932)
at java.io.ObjectInputStream.readSerialData
(ObjectInputStream.java:1856)
at java.io.ObjectInputStream.readOrdinaryObject
(ObjectInputStream.java:1743)
at java.io.ObjectInputStream.readObject0
(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:
363)
at
weblogic.rmi.extensions.server.CBVInputStream.readObjectInternal
(CBVInputStream.java:71)
at weblogic.rmi.extensions.server.CBVInputStream.readObject
(CBVInputStream.java:65)
at weblogic.rmi.internal.ServerRequest.unmarshalReturn
(ServerRequest.java:100)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke
(ClusterableRemoteRef.java:338)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke
(ClusterableRemoteRef.java:252)
at
com.rx.ns.ejb.FacadeBean_yc6i5o_EOImpl_1001_WLStub.processCmd(Unknown
Source)
at com.rx.ns.linkservices.PushDataBean.onMessage
(PushDataBean.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at
com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection
(AopUtils.java:281)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
(ReflectiveMethodInvocation.java:187)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:154)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed
(DelegatingIntroductionInterceptor.java:126)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke
(DelegatingIntroductionInterceptor.java:114)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke
(ExposeInvocationInterceptor.java:89)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed
(DelegatingIntroductionInterceptor.java:126)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke
(DelegatingIntroductionInterceptor.java:114)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed
(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke
(JdkDynamicAopProxy.java:210)
at $Proxy90.onMessage(Unknown Source)
at weblogic.ejb.container.internal.MDListener.execute
(MDListener.java:466)
at
weblogic.ejb.container.internal.MDListener.transactionalOnMessage
(MDListener.java:371)
at weblogic.ejb.container.internal.MDListener.onMessage
(MDListener.java:327)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:
4072)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:
3964)
at weblogic.jms.client.JMSSession$UseForRunnable.run
(JMSSession.java:4490)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run
(SelfTuningWorkManagerImpl.java:464)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
Any new ideas?
On Nov 7, 5:23 pm, "Eric (Google)" <[email protected]> wrote:
> On Nov 6, 2:31 pm, Daniel <[email protected]> wrote:
>
> > I think I have discovered the problem. In testing the different
> > scenarios, we also test for invalid tokens. We of course receive an
> > AuthenticationException when trying to post with an invalid token. In
> > our environment, the remote server is the one that does this, so the
> > AuthenticationException is returned to our caller. In the process of
> > marshaling/unmarshaling across the network, the data member
> > "responseContentType" of AuthenticationException (actually superclass
> > ServiceException) is of type com.google.gdata.util.ContentType and it
> > is not Serializable. And I think this is where the problem is, not on
> > the HealthService.insert(). Does this sound reasonable to you?
>
> Yeah, sounds reasonable. If this only happens when using an invalid
> token, you should be alright.
>
>
>
> > On Nov 6, 4:06 pm, "Eric (Google)" <[email protected]> wrote:
>
> > > On Nov 6, 12:45 pm, Daniel <[email protected]> wrote:
>
> > > > On Nov 6, 1:16 pm, "Eric (Google)" <[email protected]> wrote:
>
> > > > > On Nov 6, 11:07 am, Daniel <[email protected]> wrote:
>
> > > > > > On Nov 5, 5:45 pm, "Eric (Google)" <[email protected]> wrote:
>
> > > > > > > On Nov 5, 1:56 pm, Daniel <[email protected]> wrote:
>
> > > > > > > > On Nov 5, 11:38 am, "Eric (Google)" <[email protected]> wrote:
>
> > > > > > > > > Hi Daniel,
>
> > > > > > > > > I haven't seen that Exception before. What version of the
> > > > > > > > > Java
> > > > > > > > > library are you using?
>
> > > > > > > > We are running IBM java 1.5.0 under WebLogic 10.0mp1.
>
> > > > > > > Sounds like WebLogic may be corrupting the request. Any way
> > > > > > > you can provide a packet capture of the requests?
>
> > > > > > If you know of an easy way, I will try. The problem is that it does
> > > > > > not occur every time. I am trying to get a consistent exception
> > > > > > being
> > > > > > thrown, but I am not there yet.
>
> > > > > Here's an article that may
> > > > > help:http://code.google.com/apis/gdata/articles/wireshark.html
>
> > > > Looks like good tools, but we are running on an AIX system and are not
> > > > the only traffic across the network.
>
> > > > I guess there is nothing on the HealthService.insert() that can be set
> > > > to dump the response without deserializing it?
>
> > > Not that I know of. You could always hack the library yourself :)
>
> > > > > > > > > On Nov 4, 7:47 am, Daniel <[email protected]> wrote:
>
> > > > > > > > > > I am occasionally getting this error on an
> > > > > > > > > > HealthService.insert():
>
> > > > > > > > > > java.rmi.UnmarshalException: cannot unmarshaling return;
> > > > > > > > > > nested
> > > > > > > > > > exception is:
> > > > > > > > > > java.io.NotSerializableException:
> > > > > > > > > > com.google.gdata.util.ContentType
>
> > > > > > > > > > 1) Does this indicate we need to update our client
> > > > > > > > > > libraries? If so,
> > > > > > > > > > how will we be notified when we need to update?
>
> > > > > > > > > Download the latest
> > > > > > > > > fromhttp://code.google.com/p/gdata-java-client/downloads/list
>
> > > > > > > > This shows we are using the current version (1.0) of
> > > > > > > > gdata-client,
> > > > > > > > gdata-health, and gdata-core.
>
> > > > > > > > > > 2) Did the post actually get sent and we should ignore this
> > > > > > > > > > exception?
>
> > > > > > > > > If data isn't showing up in your profile, then the insert
> > > > > > > > > is failing.
>
> > > > > > > > Since we are providing the service, we only know the token and
> > > > > > > > do not
> > > > > > > > know the profile. So we can't check to see if it is showing up
> > > > > > > > in the
> > > > > > > > profile. That's the reason for the question.
>
> > > > > > > You can't use a test account onhttps://www.google.com/h9/andcheck
> > > > > > > if
> > > > > > > the linked profile is updated?
>
> > > > > > On the test profile that the error occurred, it looks like the
> > > > > > profile
> > > > > > is update.
>
> > > > > Oh good. So maybe the ContentType from the server's response
> > > > > is being stripped for some reason?
>
> > > > > > > > > > 3) Is this an indication of a bad token and force the user
> > > > > > > > > > to link
> > > > > > > > > > again?
>
> > > > > > > > > No
>
> > > > > > > > > > 4) Is this an indication of a network hiccup and we should
> > > > > > > > > > try again?
>
> > > > > > > > > > Thanks.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Health Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/googlehealthdevelopers?hl=en
-~----------~----~----~----~------~----~------~--~---