@Override public ObjectStreamClass getObjectStreamClass() { return classFields.get(CONTEXT.caller()).getObjectStreamClass(); }
/** * Subclasses should call this method within their * readObject(ObjectInputStream) invocations * * @param stream * @throws IOException * @throws ClassNotFoundException */ protected void doReadObject(final ObjectInputStream stream) throws IOException, ClassNotFoundException { final GetField readFields = stream.readFields(); for (final String fieldName : getFieldNamesInAdditionToId()) { final Object value = readFields.get(fieldName, null); setField(fieldName, value); } // fix issue of deserializing _rowNumber in it's previous int form final long rowNumber; final ObjectStreamField legacyRowNumberField = readFields.getObjectStreamClass().getField(getFieldNameForOldId()); if (legacyRowNumberField != null) { rowNumber = readFields.get(getFieldNameForOldId(), -1); } else { rowNumber = readFields.get(getFieldNameForNewId(), -1L); } setField(getFieldNameForNewId(), rowNumber); }