private static CacheEntry readDisassembled(final ObjectDataInput in) throws IOException, IllegalAccessException, InstantiationException { int length = in.readInt(); Serializable[] disassembledState = new Serializable[length]; for (int i = 0; i < length; i++) { disassembledState[i] = in.readObject(); } String subclass = in.readUTF(); Object version = in.readObject(); return new CacheEntryImpl(disassembledState, subclass, version); }