Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[riena-dev] com.caucho.hessian.io.HessianFieldException

Hi, I encounted a problem about deserialize:

The exception stack print:
===============================

com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianFieldException: alphax.db.types.Record.updateState: alphax.db.types.ItemPointer ((0,1)) cannot be assigned to net.yau.lib.UpdateState
 at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:213)
 at $Proxy28.list(Unknown Source)
 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:597)
 at org.eclipse.riena.communication.core.hooks.AbstractHooksProxy.invoke(AbstractHooksProxy.java:69)
 at org.eclipse.riena.communication.core.hooks.AbstractHooksProxy.invoke(AbstractHooksProxy.java:38)
 at org.eclipse.riena.internal.communication.core.factory.CallHooksProxy.invoke(CallHooksProxy.java:59)
 at $Proxy29.list(Unknown Source)
 at alphax.clientservices.recCaches.RecCacheManager_Ent.reload(RecCacheManager_Ent.java:23)
 at alphax.clientservices.recCaches.AbstractRecCacheManager.get(AbstractRecCacheManager.java:18)
 at alphax.clientservices.providers.EntInfoProvider.list(EntInfoProvider.java:64)
 at alphax.clientbasicui.entBrowser.EntBrowserTreeNodesBuilder.build(EntBrowserTreeNodesBuilder.java:21)
 at alphax.clientbasicui.entBrowser.EntBrowserTreeView.reloadDataIntoView(EntBrowserTreeView.java:324)
 at alphax.clientbasicui.entBrowser.EntBrowserTreeView.createPartControl(EntBrowserTreeView.java:320)
 at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:367)
 at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226)
 at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
 at org.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:4212)
 at org.eclipse.ui.internal.WorkbenchPage$18.runWithException(WorkbenchPage.java:3271)
 at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
 at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
 at org.eclipse.ui.internal.Workbench$28.runWithException(Workbench.java:1384)
 at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2316)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at alphax.workbench.Application.start(Application.java:20)
 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
 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:597)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
 at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Caused by: com.caucho.hessian.io.HessianFieldException: alphax.db.types.Record.updateState: alphax.db.types.ItemPointer ((0,1)) cannot be assigned to net.yau.lib.UpdateState
 at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:589)
 at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387)
 at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:233)
 at com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:157)
 at com.caucho.hessian.io.SerializerFactory.readObject(SerializerFactory.java:364)
 at com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2017)
 at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1943)
 at com.caucho.hessian.io.CollectionDeserializer.readList(CollectionDeserializer.java:78)
 at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:1666)
 at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:201)
 ... 52 more


The interface is:
===================
public interface IDataService_Ent {
 
 List<EntRec> list(String[] entNos, int[] primaryRoles, boolean loadDetail);
}

I think this exception is heppened when deserialize the EntRec object,

The EntRec class:
===================
public class EntRec extends Record implements IFieldSource_EntNo, IFieldSource_FastCode{
 private static final long serialVersionUID = 1L;

 private String F_ENT_NO;
 private String F_SHORT_NAME;
 ....
}


The EntRec base on the Record class:
====================
public abstract class Record implements Serializable, IUpdatable, Cloneable, IAssignable, IAdaptable{

 private static final long serialVersionUID = 1L;

 protected UpdateState updateState = UpdateState.US__UNMODIFIED; 
 private int XMIN;
 private ItemPointer CTID;
 ...
}

I dont known what's wrong, if the server return the list cantain only one element, the invocation is Ok, but when server return 2 elements, client side throws this exception.

Yau.

Back to the top