private DeletionTaskRecoveryInfo parseTaskProto(DeletionServiceDeleteTaskProto proto) throws IOException { int taskId = proto.getId(); String user = proto.hasUser() ? proto.getUser() : null; Path subdir = null; List<Path> basePaths = null; if (proto.hasSubdir()) { subdir = new Path(proto.getSubdir()); } List<String> basedirs = proto.getBasedirsList(); if (basedirs != null && basedirs.size() > 0) { basePaths = new ArrayList<Path>(basedirs.size()); for (String basedir : basedirs) { basePaths.add(new Path(basedir)); } } FileDeletionTask task = new FileDeletionTask(taskId, this, user, subdir, basePaths); return new DeletionTaskRecoveryInfo(task, proto.getSuccessorIdsList(), proto.getDeletionTime()); }