HttpMultipartRestClient contains a default timeout parameter (DEFAULT_TIMEOUT_PARAM = "D1Client.http.default.timeouts.ms") which is used if a more specific timeout is not set. However, this parameter is not user settable because HttpMultipartRestClient's constructors call setDefaultTimeout(DEFAULT_TIMEOUT_VALUE);, which overwrites the parameter in the configuration in the Settings singleton.
A better approach might be to check if D1Client.http.default.timeouts.ms is set in a static block in HttpMultipartRestClient, and set it to DEFAULT_TIMEOUT_VALUE if not. Something like (untested):
static {
if (!Settings.getConfiguration().containsKey(DEFAULT_TIMEOUT_PARAM)) {
Settings.getConfiguration().setProperty(DEFAULT_TIMEOUT_PARAM, DEFAULT_TIMEOUT_VALUE);
}
}