Bug 24370 - SerialUID
Summary: SerialUID
Status: RESOLVED DUPLICATE of bug 10104
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 1.0   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: 2.1 M2   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-10-03 17:13 EDT by Marcus S. Zarra CLA
Modified: 2003-09-05 07:52 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 Marcus S. Zarra CLA 2002-10-03 17:13:30 EDT
It appears that the internal compiler for Eclipse generates an incorrect 
SerialUID which then causes incompatibilties going across the wire via RMI.  
This is discussed in length on the toolkit newsboard.
Comment 1 Philipe Mulet CLA 2002-10-04 08:50:43 EDT
The compiler doesn't compute the serial UID. Serialization layer is doing it.
Now if you are trying to match classfiles generated by the Eclipse Java 
compiler with some generated by a different tool, then you are going to see 
differences, since many of the compiler internal behaviors aren't specified, 
and may actually be different.

Two different compilers, including two different versions of the same compiler, 
may expose such differences. This results from a poor specification of compiler 
internal mechanism in the JLS, e.g. innerclass emulation, which results in non 
standard behavior or consensus.

Closing, please reopen if you have more material for debating.
Comment 2 Philipe Mulet CLA 2002-10-04 08:50:54 EDT
Forgot to assign
Comment 3 Philipe Mulet CLA 2002-10-04 08:51:59 EDT
Closing
Comment 4 Marcus S. Zarra CLA 2002-10-04 11:51:24 EDT
The purpose of the SerialUID is to allow a class to be transmited "over the 
wire" or written to disk.  the SerialUID is supposed to be platform and 
compiler inspecific and cross platform.  Every other compiler that I have used 
allows you to transmit a serialized class file across the wire to another 
machine that has compiled the same class from the same source.   
 
Currently the server that I am working on is compiled via jikes while the 
client is compiled via Sun's javac.  Jikes is utilized on a linux platform 
while the sun compiler is on a windows platform.  We are able to transmit 
files flawlessly across the wire that have been compiled via two different 
compilers.  The ONLY compiler that does not allow this, to date, is the one 
built into eclipse.  This represents a fundamental flaw in the way that 
Eclipse generates class files. 
 
 
Comment 5 Philipe Mulet CLA 2002-10-08 06:09:28 EDT
The behavior you mention is unspecified, until the spec clarifies this area, we 
have no plan to change our current behavior. 

Now I'd be interested by the complete list of compiler tools you have been 
using when claiming they "ALL" match. Also a testcase would be worth.

Closing, will reconsider once the spec changes (if it does).
Comment 6 Philipe Mulet CLA 2003-09-05 07:52:33 EDT
Should have closed as duplicate
Comment 7 Philipe Mulet CLA 2003-09-05 07:52:53 EDT

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