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:
> [EMAIL PROTECTED]
> >For additional commands, e-mail:
> [EMAIL PROTECTED]
> >
> >
> >
> >  
> >
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to