try { Appointment appt = Mailbox.getMailboxById(getMailboxId()).getAppointmentById(null, mApptId);  if (in.readBoolean()) { int range = in.readInt(); String dtStr = in.readUTF();  try { mRecurId = new RecurId(ParsedDateTime.parse(dtStr, appt.getTimeZoneMap()), range); } catch (ParseException pe) { throw new IOException("Parsing date-time: "+dtStr+" "+pe); } }  mCnStr = in.readUTF(); mAddressStr = in.readUTF(); mCUTypeStr = in.readUTF(); mRoleStr = in.readUTF(); mPartStatStr = in.readUTF(); mNeedsReply = new Boolean(in.readBoolean()); mSeqNo = in.readInt(); mDtStamp = in.readLong(); } catch (ServiceException se) { throw new IOException("ServiceException: "+se);
boolean hasRecurId = in.readBoolean(); if (hasRecurId) { mRecurIdRange = in.readInt(); mRecurIdDt = in.readUTF();
    protected void deserializeData(DataInput in) throws IOException {        mApptId = in.readInt();                try {            Appointment appt = Mailbox.getMailboxById(getMailboxId()).getAppointmentById(null, mApptId);                        if (in.readBoolean()) {                int range = in.readInt();                String dtStr = in.readUTF();                                try {                    mRecurId = new RecurId(ParsedDateTime.parse(dtStr, appt.getTimeZoneMap()), range);                } catch (ParseException pe) {                    throw new IOException("Parsing date-time: "+dtStr+" "+pe);                }            }                        mCnStr = in.readUTF();            mAddressStr = in.readUTF();            mCUTypeStr = in.readUTF();            mRoleStr = in.readUTF();            mPartStatStr = in.readUTF();            mNeedsReply = new Boolean(in.readBoolean());            mSeqNo = in.readInt();            mDtStamp = in.readLong();        } catch (ServiceException se) {            throw new IOException("ServiceException: "+se);        }    }