Hi, Thank you for your response. My answers below:
1) Just checking the source code of the xstream (https://github.com/x-stream/xstream/blob/8ea8038f96c5638315d026d5884603c9ce6cebd3/xstream/src/java/com/thoughtworks/xstream/core/util/SerializationMembers.java) I could verify what you are saying. In any place appear such information and *i*t is not what Oracle says.* In fact, it is an inconsistency that the system serializes objects that are not "Serializable".* 2) "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". According the wikipedia definition of "Serialization", if you are translating object state into a format that can be stored, you are serializing (even if it these objects are not sent remotely). So may be, the good approach to deal with it is to check another interface rather that java.io.Serializable to send the object remotely. Anyway, no problem, I can fix this behavior checking if xstream is in the classpath. +1000 for your time ;) El lunes, 21 de diciembre de 2015, 15:58:55 (UTC+1), Stephen Connolly escribió: > > > > On Monday 21 December 2015, Raquel Pau Fernández <[email protected] > <javascript:>> 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]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/808b2bd5-8311-4bb4-997a-7c81a6834e3f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
