public OnDemandRequest getNextNode() {
        OnDemandRequest onDemandRequest;
        synchronized (aClass19_1358) {
            onDemandRequest = (OnDemandRequest) aClass19_1358.popFront();
        }
        if (onDemandRequest == null) {
            return null;
        }
        synchronized (queue) {
            onDemandRequest.unlinkSub();
        }
        if (onDemandRequest.buffer == null) {
            return onDemandRequest;
        }
        int off = 0;
        try {
            GZIPInputStream gzipinputstream = new GZIPInputStream(new ByteArrayInputStream(onDemandRequest.buffer));
            do {
                if (off == gzipInputBuffer.length) {
                    throw new RuntimeException("buffer overflow!");
                }
                int len = gzipinputstream.read(gzipInputBuffer, off, gzipInputBuffer.length - off);
                if (len == -1) {
                    break;
                }
                off += len;
            } while (true);
        } catch (IOException exception) {
            throw new RuntimeException("error unzipping");
        }
        onDemandRequest.buffer = new byte[off];
        System.arraycopy(gzipInputBuffer, 0, onDemandRequest.buffer, 0, off);
        return onDemandRequest;
    }