question: public void readExternal ( ObjectInput in ) throws IOException , ClassNotFoundException { String s = in . readUTF ( ) ; if ( s == null || s . length ( ) == 0 ) { byte [ ] ba = new byte [ in . readInt ( ) ] ; in . readFully ( ba ) ; s = new String ( ba ) ; } try { parse ( s ) ; } catch ( MimeTypeParseException e ) { throw new IOException ( e . toString ( ) ) ; } }
target:  The object implements the readExternal method to restore its contents by calling the methods of DataInput for primitive types and readObject for objects, strings and arrays.  The readExternal method must read the values in the same sequence and with the same types as were written by writeExternal.