Community
Participate
Working Groups
We have the following issue. We are using jdk1.4.1_02 on win2000 and notice that if we try to serialize an object between two jvms, one running classes built outside of eclipse and the other running classes built inside of eclipse, we get a class incompatability error serializing from the non-eclipse jvm to the eclipse jvm. While we could set the serial uid to avoid this error, to us it seems like a red flag. Is anyone aware of such a problem? The specifics are, we are running ejbs compiled outside of eclipse on jboss. The client classes, which are shared, were then recompiled inside of eclipse. My understanding was they both used the same java. The stack trace is included. Any help you could give would be appreciated. Regards Eric Kaplan java.lang.reflect.UndeclaredThrowableException at $Proxy21.getLookup(Unknown Source) at com.armanta.rptgen.DataServer.getLookup(DataServer.java:534) at com.armanta.guiutil.OrderedLookupDataEntryComponent.setLookupName (OrderedLookupDataEntryComponent.java:164) at com.armanta.guiutil.OrderedLookupDataEntryComponent.setKey (OrderedLookupDataEntryComponent.java:62) at com.armanta.app.portviewer.GroupingComponent.update (GroupingComponent.java:866) at java.util.Observable.notifyObservers(Observable.java:142) at java.util.Observable.notifyObservers(Observable.java:98) at com.armanta.app.portviewer.GroupingComponent$Model.newBreakpointSelected (GroupingComponent.java:442) at com.armanta.app.portviewer.GroupingComponent$Model.newBreakdownSelected (GroupingComponent.java:431) at com.armanta.app.portviewer.GroupingComponent$Model.newColumnSelected (GroupingComponent.java:451) at com.armanta.app.portviewer.GroupingComponent.actionPerformed (GroupingComponent.java:779) at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1196) at javax.swing.JComboBox.setSelectedItem(JComboBox.java:561) at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:597) at javax.swing.plaf.basic.BasicComboPopup$ListMouseHandler.mouseReleased (BasicComboPopup.java:749) at java.awt.AWTEventMulticaster.mouseReleased (AWTEventMulticaster.java:228) at java.awt.Component.processMouseEvent(Component.java:5134) at javax.swing.plaf.basic.BasicComboPopup$2.processMouseEvent (BasicComboPopup.java:452) at java.awt.Component.processEvent(Component.java:4931) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3639) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1590) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy (EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:140) at java.awt.Dialog.show(Dialog.java:538) at java.awt.Component.show(Component.java:1134) at java.awt.Component.setVisible(Component.java:1089) at com.armanta.app.portviewer.GroupingTab.groupButtonPressed (GroupingTab.java:207) at com.armanta.app.portviewer.GroupingTab.actionPerformed (GroupingTab.java:131) at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1764) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed (AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:257) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5134) at java.awt.Component.processEvent(Component.java:4931) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3639) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1590) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy (EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:140) at java.awt.Dialog.show(Dialog.java:538) at java.awt.Component.show(Component.java:1134) at java.awt.Component.setVisible(Component.java:1089) at com.armanta.app.portviewer.ReportSpecs.setVisible (ReportSpecs.java:1111) at com.armanta.app.portviewer.PortGui.ReportOptions_actionPerformed (PortGui.java:1819) at com.armanta.app.portviewer.PortGui$SymAction.actionPerformed (PortGui.java:381) at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1764) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed (AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:257) at javax.swing.AbstractButton.doClick(AbstractButton.java:289) at javax.swing.plaf.basic.BasicMenuItemUI.doClick (BasicMenuItemUI.java:1113) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased (BasicMenuItemUI.java:943) at java.awt.Component.processMouseEvent(Component.java:5134) at java.awt.Component.processEvent(Component.java:4931) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3639) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1590) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy (EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99) Caused by: java.io.InvalidClassException: com.armanta.ejb.lookup.LookupVal; local class incompatible: stream classdesc serialVersionUID = - 6761996269625288314, local class serialVersionUID = -2476819230500022806 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459) at java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1521) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435) at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1626) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at java.util.Hashtable.readObject(Hashtable.java:837) 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:324) at java.io.ObjectStreamClass.invokeReadObject (ObjectStreamClass.java:824) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746) at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1646) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at java.rmi.MarshalledObject.get(MarshalledObject.java:135) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke (JRMPInvokerProxy.java:139) at org.jboss.invocation.InvokerInterceptor.invoke (InvokerInterceptor.java:108) at org.jboss.proxy.TransactionInterceptor.invoke (TransactionInterceptor.java:77) at org.jboss.proxy.SecurityInterceptor.invoke (SecurityInterceptor.java:80) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke (StatelessSessionInterceptor.java:111) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76) ... 90 more java.lang.reflect.UndeclaredThrowableException at $Proxy21.getLookup(Unknown Source) at com.armanta.rptgen.DataServer.getLookup(DataServer.java:534) at com.armanta.guiutil.OrderedLookupDataEntryComponent.setLookupName (OrderedLookupDataEntryComponent.java:164) at com.armanta.guiutil.OrderedLookupDataEntryComponent.setKey (OrderedLookupDataEntryComponent.java:62) at com.armanta.app.portviewer.GroupingComponent.update (GroupingComponent.java:866) at java.util.Observable.notifyObservers(Observable.java:142) at java.util.Observable.notifyObservers(Observable.java:98) at com.armanta.app.portviewer.GroupingComponent$Model.setupGroupingFromGroupingSpec s(GroupingComponent.java:485) at com.armanta.app.portviewer.GroupingComponent.setupGroupingFromGroupingSpecs (GroupingComponent.java:825) at com.armanta.app.portviewer.ReportSpecs.definitionLoaded (ReportSpecs.java:1488) at com.armanta.app.portviewer.ReportSpecs.cancelButton_actionPerformed (ReportSpecs.java:1924) at com.armanta.app.portviewer.ReportSpecs$SymAction.actionPerformed (ReportSpecs.java:221) at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1764) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed (AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:257) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased (BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5134) at java.awt.Component.processEvent(Component.java:4931) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3639) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1590) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy (EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:140) at java.awt.Dialog.show(Dialog.java:538) at java.awt.Component.show(Component.java:1134) at java.awt.Component.setVisible(Component.java:1089) at com.armanta.app.portviewer.ReportSpecs.setVisible (ReportSpecs.java:1111) at com.armanta.app.portviewer.PortGui.ReportOptions_actionPerformed (PortGui.java:1819) at com.armanta.app.portviewer.PortGui$SymAction.actionPerformed (PortGui.java:381) at javax.swing.AbstractButton.fireActionPerformed (AbstractButton.java:1764) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed (AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed (DefaultButtonModel.java:257) at javax.swing.AbstractButton.doClick(AbstractButton.java:289) at javax.swing.plaf.basic.BasicMenuItemUI.doClick (BasicMenuItemUI.java:1113) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased (BasicMenuItemUI.java:943) at java.awt.Component.processMouseEvent(Component.java:5134) at java.awt.Component.processEvent(Component.java:4931) at java.awt.Container.processEvent(Container.java:1566) at java.awt.Component.dispatchEventImpl(Component.java:3639) at java.awt.Container.dispatchEventImpl(Container.java:1623) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.LightweightDispatcher.retargetMouseEvent (Container.java:3450) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095) at java.awt.Container.dispatchEventImpl(Container.java:1609) at java.awt.Window.dispatchEventImpl(Window.java:1590) at java.awt.Component.dispatchEvent(Component.java:3480) at java.awt.EventQueue.dispatchEvent(EventQueue.java:450) at java.awt.EventDispatchThread.pumpOneEventForHierarchy (EventDispatchThread.java:197) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99) Caused by: java.io.InvalidClassException: com.armanta.ejb.lookup.LookupVal; local class incompatible: stream classdesc serialVersionUID = - 6761996269625288314, local class serialVersionUID = -2476819230500022806 at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:459) at java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1521) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435) at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1626) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at java.util.Hashtable.readObject(Hashtable.java:837) 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:324) at java.io.ObjectStreamClass.invokeReadObject (ObjectStreamClass.java:824) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1746) at java.io.ObjectInputStream.readOrdinaryObject (ObjectInputStream.java:1646) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) at java.rmi.MarshalledObject.get(MarshalledObject.java:135) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke (JRMPInvokerProxy.java:139) at org.jboss.invocation.InvokerInterceptor.invoke (InvokerInterceptor.java:108) at org.jboss.proxy.TransactionInterceptor.invoke (TransactionInterceptor.java:77) at org.jboss.proxy.SecurityInterceptor.invoke (SecurityInterceptor.java:80) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke (StatelessSessionInterceptor.java:111) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76) ... 64 more
Eclipse is using its own compiler. Therefore there is no garantee that the computed serial id will be the same between javac and eclipse compiler. This is a known problem. The computed serial id can actually be different between javac versions. JDK1.3.1 can lead to a different serial id than JDK 1.4.1 or 1.2.2. The only way to solve this issue is to set the serial id.
Duplicate of bug 30209. *** This bug has been marked as a duplicate of 30209 ***