I would think that cloning would go into BeanUtils, which already has some cloning methods. If BeanUtils already has cloning code, and so does SerializationUtils, why would write yet another class?
--- Stephen Colebourne <[EMAIL PROTECTED]> wrote: > Have a look in SerializationUtils. IIRC this code is > already there. > > CloneUtils can wrap the code in SerializationUtils > to > achieve its aims, although I'd probably prefer to > just > add a method to ObjectUtils rather than creating a > new > class for one method. > > Stephen > > > --- Shaun Kalley <[EMAIL PROTECTED]> wrote: > > > I've included my code below. I have another if > > you're able to answer > > it: why is the lang subproject home to classes > > dealing with > > serialization? Shouldn't they be part of the IO > > subproject? > > > > Thanks, > > Shaun > > > > /** > > * <p>Clones a serializable object by > > serializing and deserializing > > it.</p> > > * > > * @param obj the object to clone. > > * @return a clone of the object, or null if > the > > object is null. > > * @throws SerializationException if the > > serialization process fails. > > */ > > public static Object > > cloneSerializable(Serializable obj) throws > > SerializationException { > > if (obj == null) { > > return null; > > } > > ObjectOutputStream oos = null; > > ObjectInputStream ois = null; > > try { > > ByteArrayOutputStream baos = new > > ByteArrayOutputStream(512); > > oos = new ObjectOutputStream(baos); > > oos.writeObject(obj); > > oos.flush(); > > ois = new ObjectInputStream(new > > ByteArrayInputStream(baos.toByteArray())); > > return ois.readObject(); > > } catch (Exception e) { > > throw new > SerializationException("Failed > > to clone > > serializable object.", e); > > } finally { > > if (ois != null) { > > try { > > ois.close(); > > } catch (IOException ignored) { > > } > > } > > if (oos != null) { > > try { > > oos.close(); > > } catch (IOException ignored) { > > } > > } > > } > > } > > > > > > > > Kevin Gessner wrote: > > > > >Thanks Shaun - I'd be happy to have the code if > > you'll send it along. > > > > > >Kevin > > > > > >On 6/4/05, Shaun Kalley <[EMAIL PROTECTED]> > > wrote: > > > > > > > > >>The only substantial difference in my code is a > > shortcut to return null > > >>if the object is null. (Sorry to send two > > replies!) > > >> > > >>Shaun > > >> > > >> > > >>James Carman wrote: > > >> > > >> > > >> > > >>>SerializationUtils already has a clone() > method. > > Is your code different > > >>> > > >>> > > >>>from that? > > >> > > >> > > >>>-----Original Message----- > > >>>From: Shaun Kalley > > [mailto:[EMAIL PROTECTED] > > >>>Sent: Saturday, June 04, 2005 4:31 PM > > >>>To: Jakarta Commons Developers List > > >>>Subject: Re: [lang] CloneUtils > > >>> > > >>>Hi, Kevin and everyone, > > >>> > > >>>I've got code for cloning serializable objects > > that I'd be happy to > > >>>contribute to the project. Let me know if > you'd > > like it as a starting > > >>>point. > > >>> > > >>>Thanks, > > >>>Shaun Kalley > > >>> > > >>> > > >>>Kevin Gessner wrote: > > >>> > > >>> > > >>> > > >>> > > >>> > > >>>>Hello all, > > >>>> > > >>>>In the interest of jumping feet first into > > commons-lang, I'm hoping to > > >>>>start work on CloneUtils (from the tasks > list). > > Before I start any > > >>>>serious design/coding, I'd like to ask for any > > suggestions as to > > >>>>features of the class (assuming, of course, > that > > no one has anything > > >>>>completed already). I was planning on > > implementing serialization > > >>>>cloning, and maybe super-simple public fields > > cloning if it's worth > > >>>>it. I would appreciate any > > suggestions/tips/etc. anyone has to offer. > > >>>> > > >>>>Thanks, > > >>>>Kevin Gessner > > >>>> > > > >>>>--------------------------------------------------------------------- > > >>>>To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > >>>>For additional commands, e-mail: > > [EMAIL PROTECTED] > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>> > > > >>>--------------------------------------------------------------------- > > >>>To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > >>>For additional commands, e-mail: > > [EMAIL PROTECTED] > > >>> > > >>> > > > >>>--------------------------------------------------------------------- > > >>>To unsubscribe, e-mail: > > [EMAIL PROTECTED] > > >>>For additional commands, e-mail: > > [EMAIL PROTECTED] > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >>> > > >> > > >> > > >> > > > > > > >--------------------------------------------------------------------- > > >To unsubscribe, e-mail: > === message truncated === --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]