private ItemChangeMeetingResponse handleSingleResponse(UserDataRequest udr, MeetingResponse item)
      throws CollectionNotFoundException, ProcessingEmailException, ConversionException {

    MSEmail email = retrieveMailWithMeetingRequest(udr, item);

    ItemChangeMeetingResponse meetingResponse = new ItemChangeMeetingResponse();

    if (email != null) {
      handle(meetingResponse, udr, email, item.getUserResponse());
      deleteInvitationEmail(udr, item);
    } else {
      meetingResponse.setStatus(MeetingResponseStatus.INVALID_MEETING_RREQUEST);
    }

    meetingResponse.setReqId(item.getReqId());
    return meetingResponse;
  }
  private void deleteInvitationEmail(UserDataRequest udr, MeetingResponse item) {

    try {
      contentsImporter.importMessageDeletion(
          udr, PIMDataType.EMAIL, item.getCollectionId(), item.getReqId(), false);
    } catch (ItemNotFoundException e) {
      logger.warn(e.getMessage(), e);
    } catch (UnexpectedObmSyncServerException e) {
      logger.warn(e.getMessage(), e);
    } catch (ProcessingEmailException e) {
      logger.warn(e.getMessage(), e);
    } catch (DaoException e) {
      logger.warn(e.getMessage(), e);
    } catch (CollectionNotFoundException e) {
      logger.warn(e.getMessage(), e);
    } catch (UnsupportedBackendFunctionException e) {
      logger.warn(e.getMessage(), e);
    }
  }
  private MSEmail retrieveMailWithMeetingRequest(UserDataRequest udr, MeetingResponse item)
      throws CollectionNotFoundException, ProcessingEmailException {

    MSEmail email = mailBackend.getEmail(udr, item.getCollectionId(), item.getReqId());
    return email;
  }