code: private void writeObject(ObjectOutputStream oos) throws IOException
     {
        ObjectOutputStream.PutField fields =  oos.putFields();
        String name = serialPersistentFields[TYPE_IDX].getName();
        fields.put(name, type);
        name = serialPersistentFields[WORK_IDX].getName();
        fields.put(name, work);
        name = serialPersistentFields[EXCPEPTION_IDX].getName();
        fields.put(name, e);
        name = serialPersistentFields[DURATION_IDX].getName();
        fields.put(name, startDuration);
        oos.writeFields();
     }
docs: Write object
  @param oos The object output stream
  @exception IOException Thrown if an error occurs