/** * Performs a serialization roundtrip. Serializes and deserializes the given object, great for testing objects that * implement {@link Serializable}. * * @param <T> * the type of the object involved * @param msg * the object to roundtrip * @return the serialized and deserialized object * @since 3.3 */ @SuppressWarnings("unchecked") // OK, because we serialized a type `T` public static <T extends Serializable> T roundtrip(final T msg) { return (T) deserialize(serialize(msg)); }
@Override public T clone(T object) { return SerializationUtils.clone(object); } }
@Override public byte[] serialize(T object) { return SerializationUtils.serialize(object); }
@Override public T deserialize(byte[] bytes) { if (bytes == null) { return null; } else { return (T) SerializationUtils.deserialize(bytes); } }
public void setCubeSegmentStatistics(CubeSegmentStatistics cubeSegmentStatistics) { this.cubeSegmentStatisticsBytes = (cubeSegmentStatistics == null ? null : SerializationUtils .serialize(cubeSegmentStatistics)); }
@Override public Spec deserialize(byte[] spec) { return SerializationUtils.deserialize(spec); } }
public static <T> T serializeAndDeserializeWithJavaSerialization(T input) { byte[] bytes = SerializationUtils.serialize((Serializable) input); return (T) SerializationUtils.deserialize(bytes); }
@Override public byte[] serialize(Spec spec) { return SerializationUtils.serialize(spec); }
@Override public Spec deserialize(byte[] spec) { return SerializationUtils.deserialize(spec); } }
@Override public Object clone() throws CloneNotSupportedException { return SerializationUtils.clone(this); } }
@Test(expected=ClassCastException.class) public void testDeserializeClassCastException() { final String value = "Hello"; final byte[] serialized = SerializationUtils.serialize(value); assertEquals(value, SerializationUtils.deserialize(serialized)); // Causes ClassCastException in call site, not in SerializationUtils.deserialize @SuppressWarnings("unused") // needed to cause Exception final Integer i = SerializationUtils.deserialize(serialized); }
protected byte[] serializeValue(Object value) { return SerializationUtils.serialize((Serializable) value); }
/** * <p> * Deserializes a single {@code Object} from an array of bytes. * </p> * * <p> * If the call site incorrectly types the return value, a {@link ClassCastException} is thrown from the call site. * Without Generics in this declaration, the call site must type cast and can cause the same ClassCastException. * Note that in both cases, the ClassCastException is in the call site, not in this method. * </p> * * @param <T> the object type to be deserialized * @param objectData * the serialized object, must not be null * @return the deserialized object * @throws IllegalArgumentException * if {@code objectData} is {@code null} * @throws SerializationException * (runtime) if the serialization fails */ public static <T> T deserialize(final byte[] objectData) { Validate.isTrue(objectData != null, "The byte[] must not be null"); return deserialize(new ByteArrayInputStream(objectData)); }
@Override public Object clone() throws CloneNotSupportedException { return SerializationUtils.clone(this); } }
@Test public void testLang303() throws ParseException { DateParser parser = getInstance(YMD_SLASH); final Calendar cal = Calendar.getInstance(); cal.set(2004, Calendar.DECEMBER, 31); final Date date = parser.parse("2004/11/31"); parser = SerializationUtils.deserialize(SerializationUtils.serialize((Serializable) parser)); assertEquals(date, parser.parse("2004/11/31")); }
@Override public byte[] serialize(Spec spec) { return SerializationUtils.serialize(spec); }
@JsonIgnore public List<QueryContext.CubeSegmentStatisticsResult> getCubeSegmentStatisticsList() { try { return queryStatistics == null ? Lists.<QueryContext.CubeSegmentStatisticsResult> newArrayList() : (List<QueryContext.CubeSegmentStatisticsResult>) SerializationUtils.deserialize(queryStatistics); } catch (Exception e) { // deserialize exception should not block query logger.warn("Error while deserialize queryStatistics due to " + e); return Lists.newArrayList(); } }
@Override public Object clone() throws CloneNotSupportedException { return SerializationUtils.clone(this); } }
@Test public void testLang303() { final Calendar cal = Calendar.getInstance(); cal.set(2004, Calendar.DECEMBER, 31); DatePrinter format = getInstance(YYYY_MM_DD); final String output = format.format(cal); format = SerializationUtils.deserialize(SerializationUtils.serialize((Serializable) format)); assertEquals(output, format.format(cal)); }
/** * <p>Serializes an {@code Object} to a byte array for * storage/serialization.</p> * * @param obj the object to serialize to bytes * @return a byte[] with the converted Serializable * @throws SerializationException (runtime) if the serialization fails */ public static byte[] serialize(final Serializable obj) { final ByteArrayOutputStream baos = new ByteArrayOutputStream(512); serialize(obj, baos); return baos.toByteArray(); }