Merged gcj-eclipse branch to trunk.

From-SVN: r120621
This commit is contained in:
Tom Tromey 2007-01-09 19:58:05 +00:00
parent c648dedbde
commit 97b8365caf
17478 changed files with 606493 additions and 100744 deletions

View file

@ -48,6 +48,7 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.HashMap;
@ -227,10 +228,16 @@ public class HTTPConnection
* @param secure whether to use a secure connection
* @param connectionTimeout the connection timeout
* @param timeout the socket read timeout
*
* @throws IllegalArgumentException if either connectionTimeout or
* timeout less than zero.
*/
public HTTPConnection(String hostname, int port, boolean secure,
int connectionTimeout, int timeout)
{
if (connectionTimeout < 0 || timeout < 0)
throw new IllegalArgumentException();
this.hostname = hostname;
this.port = port;
this.secure = secure;
@ -471,14 +478,32 @@ public class HTTPConnection
{
String ttl =
SystemProperties.getProperty("classpath.net.http.keepAliveTTL");
connectionTTL = (ttl != null && ttl.length() > 0) ?
1000 * Math.max(1, Integer.parseInt(ttl)) : 10000;
connectionTTL = 10000;
if (ttl != null && ttl.length() > 0)
try
{
int v = 1000 * Integer.parseInt(ttl);
if (v >= 0)
connectionTTL = v;
}
catch (NumberFormatException _)
{
// Ignore.
}
String mc = SystemProperties.getProperty("http.maxConnections");
maxConnections = (mc != null && mc.length() > 0) ?
Math.max(Integer.parseInt(mc), 1) : 5;
if (maxConnections < 1)
maxConnections = 1;
maxConnections = 5;
if (mc != null && mc.length() > 0)
try
{
int v = Integer.parseInt(mc);
if (v > 0)
maxConnections = v;
}
catch (NumberFormatException _)
{
// Ignore.
}
HTTPConnection c = null;
@ -490,12 +515,23 @@ public class HTTPConnection
{
c = cc;
it.remove();
// Update the timeout.
if (c.socket != null)
try
{
c.socket.setSoTimeout(timeout);
}
catch (SocketException _)
{
// Ignore.
}
break;
}
}
if (c == null)
{
c = new HTTPConnection(host, port, secure, connectionTimeout, timeout);
c = new HTTPConnection(host, port, secure,
connectionTimeout, timeout);
c.setPool(this);
}
return c;

View file

@ -75,7 +75,7 @@ public class HTTPURLConnection
// These are package private for use in anonymous inner classes.
String proxyHostname;
int proxyPort;
int proxyPort = -1;
String agent;
boolean keepAlive;
@ -99,18 +99,21 @@ public class HTTPURLConnection
{
super(url);
requestHeaders = new Headers();
proxyHostname = SystemProperties.getProperty("http.proxyHost");
if (proxyHostname != null && proxyHostname.length() > 0)
String proxy = SystemProperties.getProperty("http.proxyHost");
if (proxy != null && proxy.length() > 0)
{
String port = SystemProperties.getProperty("http.proxyPort");
if (port != null && port.length() > 0)
{
proxyPort = Integer.parseInt(port);
}
else
{
proxyHostname = null;
proxyPort = -1;
try
{
proxyPort = Integer.parseInt(port);
proxyHostname = proxy;
}
catch (NumberFormatException _)
{
// Ignore.
}
}
}
agent = SystemProperties.getProperty("http.agent");
@ -354,11 +357,14 @@ public class HTTPURLConnection
HTTPConnection connection;
if (keepAlive)
{
connection = HTTPConnection.Pool.instance.get(host, port, secure, getConnectTimeout(), 0);
connection = HTTPConnection.Pool.instance.get(host, port, secure,
getConnectTimeout(),
getReadTimeout());
}
else
{
connection = new HTTPConnection(host, port, secure, 0, getConnectTimeout());
connection = new HTTPConnection(host, port, secure,
getConnectTimeout(), getReadTimeout());
}
return connection;
}
@ -662,23 +668,23 @@ public class HTTPURLConnection
}
/**
* Set the connection timeout speed, in milliseconds, or zero if the timeout
* Set the read timeout, in milliseconds, or zero if the timeout
* is to be considered infinite.
*
* Overloaded.
*
*/
public void setConnectTimeout(int timeout)
public void setReadTimeout(int timeout)
throws IllegalArgumentException
{
super.setConnectTimeout( timeout );
if( connection == null )
super.setReadTimeout(timeout);
if (connection == null)
return;
try
{
connection.getSocket().setSoTimeout( timeout );
connection.getSocket().setSoTimeout(timeout);
}
catch(IOException se)
catch (IOException se)
{
// Ignore socket exceptions.
}