public void inifiniteLatencyTimeout()

in wagon-tcks/wagon-tck-http/src/main/java/org/apache/maven/wagon/tck/http/GetWagonTests.java [103:160]


    public void inifiniteLatencyTimeout()
            throws ConnectionException, AuthenticationException, ComponentConfigurationException, IOException,
                    TransferFailedException, ResourceDoesNotExistException, AuthorizationException {
        if (!isSupported()) {
            return;
        }

        final ValueHolder<TransferFailedException> holder = new ValueHolder<>(null);

        Runnable r = new Runnable() {
            public void run() {
                Servlet servlet = new LatencyServlet(-1);
                addNotificationTarget(servlet);

                getServerFixture().addServlet("/infinite/*", servlet);
                try {
                    if (!initTest(null, null)) {
                        return;
                    }

                    if (getWagon() instanceof StreamWagon) {
                        logger.info("Connection timeout is: " + getWagon().getTimeout());
                    }

                    File target = newTempFile();
                    getWagon().get("infinite/", target);

                    fail("Should have failed to transfer due to transaction timeout.");
                } catch (ConnectionException
                        | AuthenticationException
                        | ResourceDoesNotExistException
                        | AuthorizationException
                        | ComponentConfigurationException
                        | IOException e) {
                    throw new IllegalStateException(e);
                } catch (TransferFailedException e) {
                    // expected
                    holder.setValue(e);
                }
            }
        };

        Thread t = new Thread(r);
        t.start();

        try {
            logger.info("Waiting 60 seconds for wagon timeout.");
            t.join(ONE_MINUTE);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        logger.info("Interrupting thread.");
        t.interrupt();

        assertTrue("TransferFailedException should have been thrown.", holder.getValue() != null);
        assertWagonExceptionMessage(holder.getValue(), NO_RESPONSE_STATUS_CODE, getBaseUrl() + "infinite/", "", null);
    }