private void doReadObject(final SerialUnmarshaller serialUnmarshaller, final SerializableClass sc, final Object subject) throws ClassNotFoundException, IOException { final SerialObjectInputStream ois = serialUnmarshaller.getObjectInputStream(); final SerialObjectInputStream.State oldState = ois.saveState(); final PlainDescriptor oldDescriptor = ois.saveCurrentDescriptor(this); final SerializableClass oldSerializableClass = ois.saveCurrentSerializableClass(sc); final Object oldSubject = ois.saveCurrentSubject(subject); try { sc.callReadObject(subject, ois); if (sc.getFields().length > 0 && ois.restoreState(oldState) != SerialObjectInputStream.State.ON) { throw new StreamCorruptedException("readObject() did not read fields"); } } finally { ois.restoreState(oldState); ois.setCurrentDescriptor(oldDescriptor); ois.setCurrentSerializableClass(oldSerializableClass); ois.setCurrentSubject(oldSubject); } }
private void doReadObject(final SerialUnmarshaller serialUnmarshaller, final SerializableClass sc, final Object subject) throws ClassNotFoundException, IOException { final SerialObjectInputStream ois = serialUnmarshaller.getObjectInputStream(); final SerialObjectInputStream.State oldState = ois.saveState(); final PlainDescriptor oldDescriptor = ois.saveCurrentDescriptor(this); final SerializableClass oldSerializableClass = ois.saveCurrentSerializableClass(sc); final Object oldSubject = ois.saveCurrentSubject(subject); try { sc.callReadObject(subject, ois); if (sc.getFields().length > 0 && ois.restoreState(oldState) != SerialObjectInputStream.State.ON) { throw new StreamCorruptedException("readObject() did not read fields"); } } finally { ois.restoreState(oldState); ois.setCurrentDescriptor(oldDescriptor); ois.setCurrentSerializableClass(oldSerializableClass); ois.setCurrentSubject(oldSubject); } }
private void doReadObject(final SerialUnmarshaller serialUnmarshaller, final SerializableClass sc, final Object subject) throws ClassNotFoundException, IOException { final SerialObjectInputStream ois = serialUnmarshaller.getObjectInputStream(); final SerialObjectInputStream.State oldState = ois.saveState(); final PlainDescriptor oldDescriptor = ois.saveCurrentDescriptor(this); final SerializableClass oldSerializableClass = ois.saveCurrentSerializableClass(sc); final Object oldSubject = ois.saveCurrentSubject(subject); try { sc.callReadObject(subject, ois); if (sc.getFields().length > 0 && ois.restoreState(oldState) != SerialObjectInputStream.State.ON) { throw new StreamCorruptedException("readObject() did not read fields"); } } finally { ois.restoreState(oldState); ois.setCurrentDescriptor(oldDescriptor); ois.setCurrentSerializableClass(oldSerializableClass); ois.setCurrentSubject(oldSubject); } }
private void doReadObject(final SerialUnmarshaller serialUnmarshaller, final SerializableClass sc, final Object subject) throws ClassNotFoundException, IOException { final SerialObjectInputStream ois = serialUnmarshaller.getObjectInputStream(); final SerialObjectInputStream.State oldState = ois.saveState(); final PlainDescriptor oldDescriptor = ois.saveCurrentDescriptor(this); final SerializableClass oldSerializableClass = ois.saveCurrentSerializableClass(sc); final Object oldSubject = ois.saveCurrentSubject(subject); try { sc.callReadObject(subject, ois); if (sc.getFields().length > 0 && ois.restoreState(oldState) != SerialObjectInputStream.State.ON) { throw new StreamCorruptedException("readObject() did not read fields"); } } finally { ois.restoreState(oldState); ois.setCurrentDescriptor(oldDescriptor); ois.setCurrentSerializableClass(oldSerializableClass); ois.setCurrentSubject(oldSubject); } }