public synchronized CacheFetchResult getShadowBucket(FreenetURI key, boolean noFilter) { Object[] downloads = downloadsByURI.getArray(key); if (downloads == null) return null; for (Object o : downloads) { DownloadRequestStatus download = (DownloadRequestStatus) o; Bucket data = download.getDataShadow(); if (data == null) continue; if (data.size() == 0) continue; if (noFilter && download.filterData) continue; // FIXME it probably *is* worth the effort to allow this when it is overridden on the fetcher, // since the user changed the type??? if (download.overriddenDataType) continue; return new CacheFetchResult( new ClientMetadata(download.getMIMEType()), new NoFreeBucket(data), download.filterData); } return null; }