HttpUrlConnection.getStatusCode trava "para sempre" (sem lançar excessões)

Olá para todos.

Estou trabalhando numa aplicação EAR com um módulo web. Neste módulo existe uma class que chama outra aplicação web (distribuída no mesmo servidor de aplicação no mesmo EAR - Glassfish 2.1), através de uma HttpUrlConnection.

O problema, é que quando eu clico no botão (da interface de usuário) que chama a outra aplicação web (um servlet para realizar um upload automático, isto é sem seleção de arquivos, o arquivo é gerado no próprio servidor e só existe nele; a chamada se dápelo método http post), tudo funciona bem. Mas, quando eu abro muitas abas no browser, e clico rapidamente em cada uma no mesmo botão, isto é, quando eu chamo o método de upload muitas vezes, o método trava para sempre na linha “HttpUrlConnection.getStatusCode()”.

Procurei uma solução no google… Já tentei usar as propriedades “setRequestProperty(“Connection”, “Close”)”, e “setReadTimeout(5000)”. Mas nada funciona.

Já tentei o uso de semáforos, para garantir que não a chamadas simultâneas, e mesmo sendo uma chamada separada da putra o problema persiste.

Não sei bem a causa do problema. Mas quando eu chamo o método HttpUrlConnection.getStatusCode() seguidas vezes (rapidamente) o mesmo trava indefinidamente, sem lançar nenhuma excessão, e sem jamais retornar da chama (garanti isso por meio da impressão de muitos logs).

Obs.: Estou usando a JDK 6.

I hope someone can hEspero que alguém possa me ajudar.

Muito obrigado.

Part_Secret