question: private void readExternalData ( Externalizable obj , ObjectStreamClass desc ) throws IOException { SerialCallbackContext oldContext = curContext ; if ( oldContext != null ) oldContext . check ( ) ; curContext = null ; try { boolean blocked = desc . hasBlockExternalData ( ) ; if ( blocked ) { bin . setBlockDataMode ( true ) ; } if ( obj != null ) { try { obj . readExternal ( this ) ; } catch ( ClassNotFoundException ex ) { handles . markException ( passHandle , ex ) ; } } if ( blocked ) { skipCustomData ( ) ; } } finally { if ( oldContext != null ) oldContext . check ( ) ; curContext = oldContext ; } }
target:  If obj is non-null, reads externalizable data by invoking readExternal() method of obj; otherwise, attempts to skip over externalizable data. Expects that passHandle is set to obj's handle before this method is called.