Fix java serialization compatibility issues across product
----------------------------------------------------------

         Key: GERONIMO-1020
         URL: http://issues.apache.org/jira/browse/GERONIMO-1020
     Project: Geronimo
        Type: Bug
    Reporter: Sachin Patel
    Priority: Critical


>From dev list post...

So if you are not aware, I'm pulling in and packaging several jars from the lib 
and lib/endorsed directory into one of the eclipse plug-in, so the classes can 
be used and referenced by the rest of the eclipse plugins.  This is because 
eclipse can not reference classes or jars at runtime that are not packaged 
within a plug-in and marked as visible in either the plugin.xml or manifest.

A big problem resides as now the same jars I'm packaging must be the same exact 
jars that reside in the target server I'm deploying.  This causes a dependency 
on a particular server image.  If a user modifies classes I reference and 
rebuilds their server, the plug-in is broken as during deployment I'll receive 
error messages like the following...

Caused by: java.io.InvalidClassException: 
org.apache.geronimo.kernel.config.ConfigurationModuleType; local class 
incompatible: stream classdesc serialVersionUID = 6296527685792707191, local 
class serialVersionUID = -4121586344416418391

So looking at that particular class, it looks like the serialVersionUID is 
generated by Java compiler.  This is bad as now jars/classes risk compatibility 
between every build.  We need a solution for this.  The only other option I'm 
aware of is for these serializable classes to hard code and explicity assign a 
value.  Of course we must then assue that we manually maintain backward 
compatibility to support the N-2 model for these classes.  This problem will 
eventually have to be solved anyway when there is multiple server support and 
across different versions.
I think this is a must fix for 1.0 as without doing so we risk product 
migration, mixed version interoperability, tooling, possibly user applications, 
etc...


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to