code: private void readObject(java.io.ObjectInputStream in)
                      throws IOException, ClassNotFoundException
      {
          in.defaultReadObject();
          // read in the eyecatcher for this object (WSFE in ascii)
          byte[] ec = new byte[Constants.EYE_CATCHER_LENGTH];
  
          //d164415 start
          int bytesRead = 0;
          for (int offset = 0; offset < Constants.EYE_CATCHER_LENGTH; offset += bytesRead)
          {
              bytesRead = in.read(ec, offset, Constants.EYE_CATCHER_LENGTH - offset);
              if (bytesRead == -1)
              {
                  throw new IOException("end of input stream while reading eye catcher");
              }
          } //d164415 end
  
          // validate that the eyecatcher matches
          for (int i = 0; i < eyecatcher.length; i++) {
              if (eyecatcher[i] != ec[i]) {
                  throw new IOException();
              }
          }
  
          in.readShort(); // platform
          in.readShort(); // version
  
          finderEnumerator = (PortableFinderEnumerator) in.readObject();
  
      }
docs: object.