I would rather they all be Serializable so it really needs a case by case evaluation
On Monday 21 December 2015, Baptiste Mathus <[email protected]> wrote: > @Stephen: then wouldn't at least a PR to add a comment to the > readResolve() like > https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/ListView.java#L112 > be beneficial both for the common knowledge and for you not to have to > repeat yourself every few weeks? :-) > > Something short like: > > /** > * DO NOT REMOVE: see > wiki.jenkins-ci.org/display/JENKINS/XStream-Why-Keep-Blah > */ > > (Note: I can prepare that PR if so, or I wouldn't propose it). > > 2015-12-21 15:58 GMT+01:00 Stephen Connolly < > [email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>>: > >> >> >> On Monday 21 December 2015, Raquel Pau Fernández <[email protected] >> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >> >>> Hi, >>> >>> I have sent a PR that removes dead code ( >>> https://github.com/jenkinsci/jenkins/pull/1957). Some of the suggested >>> changes are to remove readResolve methods because the classes that contain >>> those methods do not implement java.io.Serializable. >>> >>> >> -1000 >> >> Those readResolve methods are critical for XStream >> >> >>> XStream, as far as I know, uses the readResolve when it is dealing with >>> the ObjectOutputStream and according the official Java documentation, just >>> Serialiable and Externalizable elements can use readResolve. >>> >>> >>> Then, my question is if these classes: >>> >>> >>> - hudson.model.ListView >>> - hudson.model.PaneStatusProperties >>> - hudson.model.ParametersAction >>> - hudson.model.Queue >>> - hudson.security.csrf.DefaultCrumbIssuer >>> - hudson.tasks.BatchFile >>> - hudson.tasks.BuildTrigger >>> - hudson.tasks.Shell >>> - hudson.tools.BatchCommandInstaller >>> - hudson.tools.CommandInstaller >>> - hudson.util.RobustReflectionConverter >>> - jenkins.model.ArtifactManagerConfiguration >>> - jenkins.security.QueueItemAuthenticatorConfiguration >>> >>> should be java.io.Serializable or the methods need to be removed? >>> >> >> Neither. >> >> It might be beneficial to make them Serializable, but there is no >> requirement to do so. XStream.toXML doesn't need to take a Serializable and >> will use writeReplace methods if present... Vice versa for fromXML and >> readResolve >> >> In general these classes may not be Serializable as they are not viewed >> safe for sending over remoting (which uses ObectOutputStream) so there are >> two different needs and hence 4 different scenarios, only one of which >> doesn't need readResolve >> >> >>> >>> Thank you in advance >>> >>> >> >> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Jenkins Developers" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-dev/d670360c-93f8-4382-84f4-694039a02f8f%40googlegroups.com >>> <https://groups.google.com/d/msgid/jenkinsci-dev/d670360c-93f8-4382-84f4-694039a02f8f%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> -- >> Sent from my phone >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Jenkins Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <javascript:_e(%7B%7D,'cvml','jenkinsci-dev%[email protected]');> >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMwt5Co3qBe55Mv1YbazWydjW7vqf5Ph4bs1g-UtmNubGQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMwt5Co3qBe55Mv1YbazWydjW7vqf5Ph4bs1g-UtmNubGQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Baptiste <Batmat> MATHUS - http://batmat.net > Sauvez un arbre, > Mangez un castor ! > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <javascript:_e(%7B%7D,'cvml','jenkinsci-dev%[email protected]');> > . > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/CANWgJS6Hjo8o2OEv6H7Z1%3DrgYogFRWRnMMZsQNAdb9HBrJnVMA%40mail.gmail.com > <https://groups.google.com/d/msgid/jenkinsci-dev/CANWgJS6Hjo8o2OEv6H7Z1%3DrgYogFRWRnMMZsQNAdb9HBrJnVMA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Sent from my phone -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMxWMenqd5DZVmHGy8_V05nqREk25DoiX5ncXpxgMQTsWQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
