Socket conecta no Java6 mas não no 7

Oi,

Eu estou com o seguinte problema aqui na minha aplicação:

O mesmo código funciona no java 6, mas não funciona no java 7. Sendo mais específico, eu tenho uma aplicação que navega em sites e baixa informações usando um HTTPClient (org.apache.commons.httpclient v3.algumaCoisa). Debugando o código desse HTTPClient eu vi que o socket que ele abre simplesmente não conecta quando a aplicação é compilada usando Java 7, mas no 6 funciona perfeitamente.

Esse usa uam HTTPConnection que abre o socket por reflection usando a classe ReflectionSocketFactory:

    public static Socket createSocket(
            final String socketfactoryName,
            final String host,
            final int port,
            final InetAddress localAddress,
            final int localPort,
            int timeout)
            throws IOException, UnknownHostException, ConnectTimeoutException {
        if (REFLECTION_FAILED) {
            //This is known to have failed before. Do not try it again
            return null;
        }
        // This code uses reflection to essentially do the following:
        //
        //  SocketFactory socketFactory = Class.forName(socketfactoryName).getDefault();
        //  Socket socket = socketFactory.createSocket();
        //  SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        //  SocketAddress remoteaddr = new InetSocketAddress(host, port);
        //  socket.bind(localaddr);
        //  socket.connect(remoteaddr, timeout);
        //  return socket;
        try {
            Class socketfactoryClass = Class.forName(socketfactoryName);
            Method method = socketfactoryClass.getMethod("getDefault",
                    new Class[]{});
            Object socketfactory = method.invoke(null,
                    new Object[]{});
            method = socketfactoryClass.getMethod("createSocket",
                    new Class[]{});
            Socket socket = (Socket) method.invoke(socketfactory, new Object[]{});

            if (INETSOCKETADDRESS_CONSTRUCTOR == null) {
                Class addressClass = Class.forName("java.net.InetSocketAddress");
                INETSOCKETADDRESS_CONSTRUCTOR = addressClass.getConstructor(
                        new Class[]{InetAddress.class, Integer.TYPE});
            }

            Object remoteaddr = INETSOCKETADDRESS_CONSTRUCTOR.newInstance(
                    new Object[]{InetAddress.getByName(host), new Integer(port)});

            Object localaddr = INETSOCKETADDRESS_CONSTRUCTOR.newInstance(
                    new Object[]{localAddress, new Integer(localPort)});

            if (SOCKETCONNECT_METHOD == null) {
                SOCKETCONNECT_METHOD = Socket.class.getMethod("connect",
                        new Class[]{Class.forName("java.net.SocketAddress"), Integer.TYPE});
            }

            if (SOCKETBIND_METHOD == null) {
                SOCKETBIND_METHOD = Socket.class.getMethod("bind",
                        new Class[]{Class.forName("java.net.SocketAddress")});
            }
            SOCKETBIND_METHOD.invoke(socket, new Object[]{localaddr});
            SOCKETCONNECT_METHOD.invoke(socket, new Object[]{remoteaddr, new Integer(timeout)});
            return socket;
        }

Alguém saberia dizer se mudou alguma coisa na implementação de Sockets no Java 7? Ou se poderia ser alguma configuração de rede como proxy da empresa que possa estar fazendo com que o socket não conecte?
Lembrando que o código é exatamente o mesmo e fuciona perfeitamente quando compilado com o 6.

Obrigado!

Mas, se ele não conecta, cai no catch, não?
Qual a exception lançada?

Pois é, meu texto ficou extremamente ambíguo, peço desculpas, eu também acho que me confundi aqui na minha análise.

Explicando melhor, o socket no java7 abre e conecta, mas o site que eu tento acessar me retorna uma mensagem de erro:

Error Code: 403 Forbidden. Forefront TMG denied the specified 

No java6 a página é acessada normalmente. Eu coloquei em anexo a imagem em debug dos dois sockets criados, o do e o do 7, explicitando dois atributos que estão diferentes.
Eu não sei dizer se são esses dois atributos que estão causando o erro, mas estou colocando aqui para dar mais informações sobre o problema.

Obrigado!