Como obter uma conexão sem proxy em Java?

Como evito passar peloProxySelector ao fazer uma conexão comURLConnection ou melhor, como obter uma conexão garantida livre de quaisquer proxies que o Java conheça?

Eu pensei que era issoProxy.NO_PROXY era para. Citando o Javadoc:

Uma configuração de proxy que representa uma conexão DIRETA, basicamente dizendo ao manipulador de protocolo para não usar nenhum proxy

No entanto, essa conexão ainda passará pelo ProxySelector. Eu não entendi?

Fiz um pequeno teste para provar meu argumento:

public static void main(String[] args) throws MalformedURLException, IOException {
    ProxySelector.setDefault(new MyProxySelector());
    URL url = new URL("http://foobar.com/x1/x2");
    URLConnection connection = url.openConnection(Proxy.NO_PROXY);
    connection.connect();
}

e um ProxySelector fictício que não faz nada além de registrar o que está acontecendo:

public class MyProxySelector extends ProxySelector {

    @Override
    public List<Proxy> select(URI uri) {
        System.out.println("MyProxySelector called with URI = " + uri);
        return Collections.singletonList(Proxy.NO_PROXY);
    }

    @Override
    public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {}
}

que imprime:

"MyProxySelector called with URI = socket://foobar.com:80"

(Observe como o protocolo mudou dehttp parasocket)

É claro que posso criar meu ProxySelector de tal maneira que ele sempre retorneProxy.NO_PROXY se o esquema de URI forsocket mas acho que haveria ocasiões em que houvesse um proxy SOCKS no site e isso não seria verdade.

Permitam-me reafirmar a pergunta: preciso de uma maneira de garantir que um específicoURLConnection não usa um proxy, independentemente de quais propriedades do sistema possam ser definidas ou de que ProxySelector está instalado.

questionAnswers(1)

yourAnswerToTheQuestion