code: public static Object copy(Object orig)
  	{
  		Object obj = null;
  		try
  		{
  			// Write the object out to a byte array
  			FastByteArrayOutputStream fbos = new FastByteArrayOutputStream();
  			ObjectOutputStream out = new ObjectOutputStream(fbos);
  			out.writeObject(orig);
  			out.flush();
  			out.close();
  
  			// Retrieve an input stream from the byte array and read
  			// a copy of the object back in.
  			ObjectInputStream in = new ObjectInputStream(fbos.getInputStream());
  			obj = in.readObject();
  		} catch (IOException e)
  		{
  			e.printStackTrace();
  		} catch (ClassNotFoundException cnfe)
  		{
  			cnfe.printStackTrace();
  		}
  		return obj;
  	}
docs: Returns a copy of the object, or null if the object cannot be serialized.