}
}
public Object request(Object o, int timeout) throws IOException {
final Command command = (Command)o;
FutureResponse response = asyncRequest(command, null);
while (timeout > 0) {
int time = timeout;
if (timeout > requestTimeout) {
time = requestTimeout;
}
Response result = response.getResult(time);
if (result != null) {
return result;
}
onMissingResponse(command, response);
timeout -= time;
}
return response.getResult(0);
}