public void run() {
synchronized(RequestStatusTableContentProvider.this) {
final Date now = new Date();
int idx;
for (idx = requestList.size() - 1; idx >= requestListExpiryIdx; idx--) {
final IHttpRequestTask requestTask = requestList.get(idx);
final long diff = now.getTime() - requestTask.getTimeCompleted().getTime();
if (diff >= REQUEST_EXPIRY) {
requestList.remove(idx);
} else {
break;
}
}
if (idx != requestListExpiryIdx - 1) {
final IHttpRequestTask requestTask = requestList.get(idx);
refreshTimerTask = createRefreshTask();
refreshTimer.schedule(refreshTimerTask, requestTask.getTimeCompleted().getTime() + REQUEST_EXPIRY - now.getTime());
} else {
refreshTimerTask = null;
}
if (viewer != null) {
viewer.getControl().getDisplay().asyncExec(new Runnable() {