Summary: | Serialization incompatibility with Sun's 1.4 compiler | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Stephen Summerfield <stephen> |
Component: | Core | Assignee: | JDT-Core-Inbox <jdt-core-inbox> |
Status: | RESOLVED DUPLICATE | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | ||
Version: | 2.0.1 | ||
Target Milestone: | 2.1 RC1 | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
Description
Stephen Summerfield
2003-02-19 07:59:05 EST
Serialization is sensitive to compiler synthetic emulation, which is spec'ed nowhere in the JLS. This is unfortunate, and until the JLS covers it, nobody is either wrong or right on this front. Eclipse compiler and javac perform differently on unspecified behavior. There is nothing we can do to improve this, matching a particular version of javac would not be acceptable (reciprocally one could argue they should match us). In general, one should *always* serialize/deserialize against binaries generated by the exact same compiler (and even against a particular compiler version). Alternatively, serialization should ignore synthetics (AccSynthetic is a modifier used to tag all exotic additions to classfile which can break serialization). The JLS/serialization has been aware of this weakness for years, and never decided to resolve it. |