protected Message[] deserialize(GravityInternal gravity, byte[] data, int offset, int length) throws ClassNotFoundException, IOException {
ByteArrayInputStream is = new ByteArrayInputStream(data, offset, length);
try {
Message[] messages = null;
if (ContentType.JMF_AMF.equals(contentType)) {
@SuppressWarnings("all")
JMFDeserializer deserializer = new JMFDeserializer(is, gravity.getGraniteConfig().getSharedContext());
messages = (Message[])deserializer.readObject();
}
else {
ObjectInput amf3Deserializer = gravity.getGraniteConfig().newAMF3Deserializer(is);
Object[] objects = (Object[])amf3Deserializer.readObject();
messages = new Message[objects.length];
System.arraycopy(objects, 0, messages, 0, objects.length);
}
return messages;
}
finally {
is.close();
}
}