private FailedRecord correct(FailedRecord fr) { if (fr.getOperation() == Operation.LOCAL_CHANGE || fr.getOperation() == Operation.LOCAL_RENAME) { if (StringUtils.isEmpty(fr.getRemoteFileId()) || StringUtils.isEmpty(fr.getError())) { fr.setOperation(Operation.LOCAL_INSERT); } else if (!StringUtils.isEmpty(fr.getError()) && fr.getError().startsWith("Local file doesn't exist")) { return null; } } if (fr.getOperation() == Operation.LOCAL_INSERT) { if (!StringUtils.isEmpty(fr.getError()) && fr.getError().startsWith("Local file doesn't exist")) { return null; } } if (fr.getOperation() == Operation.LOCAL_DELETE && (StringUtils.isEmpty(fr.getRemoteFileId()) || "404".equals(fr.getError()))) { return null; } if ("404".equals(fr.getError()) && (fr.getOperation() == Operation.LOCAL_CHANGE || fr.getOperation() == Operation.LOCAL_DELETE || fr.getOperation() == Operation.LOCAL_RENAME)) { // No such file fr.setOperation(Operation.LOCAL_INSERT); return fr; } if ("404".equals(fr.getError()) && (fr.getOperation() == Operation.REMOTE_INSERT || fr.getOperation() == Operation.REMOTE_CHANGE || fr.getOperation() == Operation.REMOTE_RENAME || fr.getOperation() == Operation.REMOTE_DELETE)) { return null; } return fr; }