public void run() { while (true) { if (_done) { // check if we are done requesting images synchronized (_syncObject) { synchronized (_imageQueue) { if (_imageQueue.size() == 0) { _currentThread = null; break; } } } } RequestedResource resource = null; // request next image synchronized (_imageQueue) { if (_imageQueue.size() > 0) { resource = (RequestedResource) _imageQueue.elementAt(0); _imageQueue.removeElementAt(0); } } if (resource != null) { HttpConnection connection = Utilities.makeConnection(resource.getUrl(), resource.getRequestHeaders(), null); resource.setHttpConnection(connection); // signal to the browser field that resource is ready if (_browserField != null) { _browserField.resourceReady(resource); } } } }