in src/main/java/com/aliyun/mns/common/http/HttpCallback.java [289:316]
public T getResult(long timewait) {
if (!completed) {
rlock.lock();
try {
if (!completed) {
boolean signaled = false;
if (timewait <= 0) {
signaled = lock.await(defaultTimewait, TimeUnit.MILLISECONDS);
} else {
signaled = lock.await(timewait, TimeUnit.MILLISECONDS);
}
if (!signaled
&& (this.future != null && this.future.isDone())
&& System.currentTimeMillis() >= (startTimeMillis + defaultTimewait)) {
this.exception = new ClientException("Client wait result timeout!",
this.callback.getUserRequestId());
this.success = false;
this.completed = true;
}
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
rlock.unlock();
}
}
return result;
}