Bug 37328 - class incompatability compiling within/outside of eclipse
Summary: class incompatability compiling within/outside of eclipse
Status: RESOLVED DUPLICATE of bug 30209
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 2.1   Edit
Hardware: PC Windows 2000
: P3 blocker (vote)
Target Milestone: 3.0 M1   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-05-07 10:43 EDT by Eric Kaplan CLA
Modified: 2003-06-02 06:12 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Kaplan CLA 2003-05-07 10:43:01 EDT
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
Comment 1 Olivier Thomann CLA 2003-05-07 10:46:23 EDT
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.
Comment 2 Olivier Thomann CLA 2003-05-07 11:54:52 EDT
Duplicate of bug 30209.

*** This bug has been marked as a duplicate of 30209 ***