Code review comment: Why do we need to get it again? We are still inside the lock

Code under review:
private boolean deployTo(Move move) {
        ApplicationId application = move.node.allocation().get().owner();
        try (MaintenanceDeployment deployment = new MaintenanceDeployment(application, deployer, nodeRepository())) {
            if ( ! deployment.isValid()) return false;

            boolean couldMarkRetiredNow = markWantToRetire(Optional.of(move.node), true);
            if ( ! couldMarkRetiredNow) return false;

            Optional<Node> expectedNewNode = Optional.empty();
            try {
                if ( ! deployment.prepare()) return false;
                expectedNewNode =
                        nodeRepository().getNodes(application, Node.State.reserved).stream()
                                        .filter(node -> node.hasParent(move.toHost.hostname()))
                                        .filter(node -> node.allocation().get().membership().cluster().id().equals(move.node.allocation().get().membership().cluster().id()))
                                        .findAny();
                if (expectedNewNode.isEmpty()) return false;
                if ( ! deployment.activate()) return false;

                log.info("Rebalancer redeployed " + application + " to " + move);
                return true;
            }
            finally {
                markWantToRetire(nodeRepository().getNode(move.node.hostname()), false); 
                if (expectedNewNode.isPresent()) { 
                     Optional<Node> reservedNewNode = nodeRepository().getNode(expectedNewNode.get().hostname(), Node.State.reserved);
                     reservedNewNode.ifPresent(reserved -> nodeRepository().setDirty(reserved, Agent.system, "Expired by Rebalancer"));
                }
            }
        }
    }

Line commented on: Optional<Node> reservedNewNode = nodeRepository().getNode(expectedNewNode.get().hostname(), Node.State.reserved);

Revised code:
private boolean deployTo(Move move) {
        ApplicationId application = move.node.allocation().get().owner();
        try (MaintenanceDeployment deployment = new MaintenanceDeployment(application, deployer, nodeRepository())) {
            if ( ! deployment.isValid()) return false;

            boolean couldMarkRetiredNow = markWantToRetire(move.node, true);
            if ( ! couldMarkRetiredNow) return false;

            Optional<Node> expectedNewNode = Optional.empty();
            try {
                if ( ! deployment.prepare()) return false;
                expectedNewNode =
                        nodeRepository().getNodes(application, Node.State.reserved).stream()
                                        .filter(node -> node.hasParent(move.toHost.hostname()))
                                        .filter(node -> node.allocation().get().membership().cluster().id().equals(move.node.allocation().get().membership().cluster().id()))
                                        .findAny();
                if (expectedNewNode.isEmpty()) return false;
                if ( ! deployment.activate()) return false;

                log.info("Rebalancer redeployed " + application + " to " + move);
                return true;
            }
            finally {
                markWantToRetire(move.node, false); 
                if (expectedNewNode.isPresent()) { 
                     Optional<Node> reservedNewNode = nodeRepository().getNode(expectedNewNode.get().hostname(), Node.State.reserved);
                     reservedNewNode.ifPresent(reserved -> nodeRepository().setDirty(reserved, Agent.system, "Expired by Rebalancer"));
                }
            }
        }
    }