Increased connection timeout and removed read timeout from HTTP connection.

This commit is contained in:
Synced Synapse 2015-01-18 14:40:14 +00:00
parent 56ef1a9497
commit 6a9c7200ce
1 changed files with 24 additions and 7 deletions

View File

@ -49,8 +49,6 @@ import java.util.concurrent.Executors;
public class HostConnection { public class HostConnection {
public static final String TAG = LogUtils.makeLogTag(HostConnection.class); public static final String TAG = LogUtils.makeLogTag(HostConnection.class);
private static final int TIMEOUT = 5000; // ns
/** /**
* Communicate via TCP * Communicate via TCP
*/ */
@ -136,13 +134,32 @@ public class HostConnection {
private ExecutorService executorService; private ExecutorService executorService;
private final int connectionTimeout;
private static final int DEFAULT_TIMEOUT = 10000; // ms
/**
* Creates a new host connection
* @param hostInfo Host info object
*/
public HostConnection(final HostInfo hostInfo) { public HostConnection(final HostInfo hostInfo) {
this.hostInfo = hostInfo; this(hostInfo, DEFAULT_TIMEOUT);
}
/**
* Creates a new host connection
* @param hostInfo Host info object
* @param connectionTimeout Connection timeout in ms
*/
public HostConnection(final HostInfo hostInfo, int connectionTimeout) {
this.hostInfo = hostInfo;
// Start with the default host protocol // Start with the default host protocol
this.protocol = hostInfo.getProtocol(); this.protocol = hostInfo.getProtocol();
// Create a single threaded executor // Create a single threaded executor
this.executorService = Executors.newSingleThreadExecutor(); this.executorService = Executors.newSingleThreadExecutor();
} // Set timeout
this.connectionTimeout = connectionTimeout;
}
/** /**
* Returns this connection protocol * Returns this connection protocol
@ -339,8 +356,8 @@ public class HostConnection {
// LogUtils.LOGD(TAG, "Opening HTTP connection."); // LogUtils.LOGD(TAG, "Opening HTTP connection.");
HttpURLConnection connection = (HttpURLConnection) new URL(hostInfo.getJsonRpcHttpEndpoint()).openConnection(); HttpURLConnection connection = (HttpURLConnection) new URL(hostInfo.getJsonRpcHttpEndpoint()).openConnection();
connection.setRequestMethod("POST"); connection.setRequestMethod("POST");
connection.setConnectTimeout(TIMEOUT); connection.setConnectTimeout(connectionTimeout);
connection.setReadTimeout(TIMEOUT); //connection.setReadTimeout(connectionTimeout);
connection.setRequestProperty("Content-Type", "application/json"); connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true); connection.setDoOutput(true);
@ -518,7 +535,7 @@ public class HostConnection {
Socket socket = new Socket(); Socket socket = new Socket();
final InetSocketAddress address = new InetSocketAddress(hostInfo.getAddress(), hostInfo.getTcpPort()); final InetSocketAddress address = new InetSocketAddress(hostInfo.getAddress(), hostInfo.getTcpPort());
socket.setSoTimeout(0); // No read timeout. Read should block socket.setSoTimeout(0); // No read timeout. Read should block
socket.connect(address, TIMEOUT); socket.connect(address, connectionTimeout);
return socket; return socket;
} catch (SocketException e) { } catch (SocketException e) {