Bug in URLConnection?
Christopher Hegarty - Sun Microsystems Ireland
Christopher.Hegarty at Sun.COM
Wed Dec 2 03:42:11 PST 2009
Hi Paulo,
I must admit that making a URLConnection request from within select
looks a little funny, but I don't think it should cause a problem. I've
run the test you posted and I don't see the default proxy selector being
invoke. I only see the user defined selector. Can you provide more
information about what you are seeing? JDK version, any debugging
output/traces?
It may also be worth enabling HTTP logging,
-Djava.util.logging.config.file=logging.properties (see attached
logging.properties)
-Chris.
On 02/12/2009 00:56, Paulo Levi wrote:
> Test case:
>
> package util.net;
>
> import java.io.IOException;
> import java.net.MalformedURLException;
> import java.net.Proxy;
> import java.net.ProxySelector;
>
> import java.net.SocketAddress;
> import java.net.URI;
> import java.net.URL;
> import java.net.URLConnection;
> import java.util.Collections;
> import java.util.List;
> import java.util.logging.Level;
> import java.util.logging.Logger;
>
> import org.junit.After;
> import org.junit.AfterClass;
> import org.junit.Before;
> import org.junit.BeforeClass;
> import org.junit.Test;
>
> /**
> *
> * @author i30817
> */
> public class ProxySelectorBugTest {
>
> public ProxySelectorBugTest() {
> }
>
> @BeforeClass
> public static void setUpClass() throws Exception {
> }
>
> @AfterClass
> public static void tearDownClass() throws Exception {
>
> }
>
> @Before
> public void setUp() {
> }
>
> @After
> public void tearDown() {
> }
>
> /**
> *
> */
> @Test
> public void testURLConnectionDoesntBypassProxySelector(){
>
> ProxySelector proxySelector = ProxySelector.getDefault();
> ProxySelector.setDefault(new UserProxySelector());
> try {
> //This calls the installed proxy selector.
> URL u = new URL("http://www.yahoo.com");
>
> URLConnection conn = u.openConnection();
> conn.connect();
> } catch (Exception ex) {
>
> Logger.getLogger(ProxySelectorBugTest.class.getName()).log(Level.SEVERE,
> null, ex);
>
> }
> ProxySelector.setDefault(proxySelector);
> }
>
> class UserProxySelector extends ProxySelector{
>
> @Override
> public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
>
>
> }
>
> @Override
> public List<Proxy> select(URI uri) {
> try {
> //bug here, the java doc say that this will bypass the installed
> //proxyselector but it doesn't.
>
> URL u = new URL("http://www.google.com");
> URLConnection conn = u.openConnection(Proxy.NO_PROXY);
> conn.connect();
> } catch (Exception ex) {
>
>
> Logger.getLogger(UserProxySelector.class.getName()).log(Level.SEVERE,
> null, ex);
> }
> return Collections.singletonList(Proxy.NO_PROXY);
> }
>
> }
> }
>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: logging.properties
Url: http://mail.openjdk.java.net/pipermail/net-dev/attachments/20091202/dcff9c61/logging.properties
More information about the net-dev
mailing list