Consider the following snippet:
URLConnection connection = target.openConnection();
connection.setConnectTimeout(5000); // 5 sec
connection.setReadTimeout(10000); // 10 sec
Does the connection.setReadTimeout
sets the maximum time available for STARTING read data or is it the maximum time available for COMPLETING read data?
My understaning is that with that, java has 10 seconds to start reading the next byte of data from the connection. There is no timeout for finishing read all data from the connection as we do not know how big the strean may be. Is it correct?
According to oracle docs, if no data is available for the read timeout period, exception can be thrown
A SocketTimeoutException can be thrown when reading from the returned input stream if the read timeout expires before data is available for read.