protected Map compute()

in dubbo-error-code-inspector/src/main/java/org/apache/dubbo/errorcode/linktest/LinkTestingForkJoinTask.java [60:104]


    protected Map<String, Boolean> compute() {

        if (end - start >= THRESHOLD) {

            int middle = (start + end) / 2;

            LinkTestingForkJoinTask left = new LinkTestingForkJoinTask(start, middle, url);
            LinkTestingForkJoinTask right = new LinkTestingForkJoinTask(middle, end, url);

            left.fork();
            right.fork();

            Map<String, Boolean> leftR = left.join();
            Map<String, Boolean> rightR = right.join();

            Map<String, Boolean> result = new HashMap<>(end - start);

            result.putAll(leftR);
            result.putAll(rightR);

            return result;

        } else {

            HashMap<String, Boolean> result = new HashMap<>();

            for (int i = start; i < end; i++) {

                HttpGet getRequest = new HttpGet(url.get(i));
                getRequest.addHeader("Accept-Language", "zh-CN");

                try {

                    try (CloseableHttpResponse resp = HTTP_CLIENT.execute(getRequest)) {
                        result.put(url.get(i), resp.getStatusLine().getStatusCode() == 200);
                    }

                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }

            return result;
        }
    }