public final void run() {
	while (!aBoolean1738) {
	    FileIndexRequest request;
	    synchronized (requestQueue) {
		request = ((FileIndexRequest) requestQueue.removeFirst());
		if (request != null)
		    ((FileIndexWorker) this).amountRequests--;
		else {
		    try {
			requestQueue.wait();
		    } catch (InterruptedException interruptedexception) {
			/* empty */
		    }
		    continue;
		}
	    }
	    try {
		if ((((FileIndexRequest) request).type) != 2) {
		    if (((FileIndexRequest) request).type == 3)
			((FileIndexRequest) request).payload = (((FileIndexRequest) request).fileIndex.getArchive((byte) -4, (int) ((SubNode) request).subnodeKey));
		} else
		    ((FileIndexRequest) request).fileIndex.writeArchive(((FileIndexRequest)request ).payload.length, (int) (((SubNode) request).subnodeKey), ((FileIndexRequest) request).payload, -7305);
	    } catch (Exception exception) {
		Class156.method1242(null, exception, 15004);
	    }
	    ((FileRequest) request).isActive = false;
	}
	cycle++;
    }