}
@SuppressWarnings({"unchecked", "resource"})
private static <T> T deserializeFromStream(InputStream in, final boolean ignoreHeader) {
ObjectInputStream oin = null;
CorruptDataException e = null;
try {
oin = new ConciseObjectInputStream(in, ignoreHeader);
Object value = oin.readObject();
if (value instanceof Flag) {
CompressionType compression = ((Flag) value).getCompressionType();
oin = compression.wrap(oin);
value = oin.readObject();
}
return (T) value;
} catch (IOException | ClassNotFoundException e1) {
e = new CorruptDataException("Deserialization error: " + e1.getMessage(), e1);
throw e;
} finally {
if (oin != null) {
try {
oin.close();