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]