/** searches for remoteStacktrace objects that match the parameters passed in. */
 public ResponseDto<ArrayList<RemoteStacktraceDto>> listRemoteExceptions(
     String phoneNumber, String deviceId, boolean unAckOnly, String cursor) {
   ResponseDto<ArrayList<RemoteStacktraceDto>> responseDto =
       new ResponseDto<ArrayList<RemoteStacktraceDto>>();
   List<RemoteStacktrace> traceList =
       traceDao.listStacktrace(phoneNumber, deviceId, unAckOnly, cursor);
   ArrayList<RemoteStacktraceDto> dtoList = new ArrayList<RemoteStacktraceDto>();
   if (traceList != null) {
     for (RemoteStacktrace trace : traceList) {
       RemoteStacktraceDto dto = new RemoteStacktraceDto();
       DtoMarshaller.copyToDto(trace, dto);
       if (trace.getStackTrace() != null) {
         dto.setStackTrace(trace.getStackTrace().getValue());
       }
       dtoList.add(dto);
     }
     responseDto.setCursorString(RemoteStacktraceDao.getCursor(traceList));
     responseDto.setPayload(dtoList);
   }
   return responseDto;
 }