public void finish(boolean error) {
        Channel origCh = unlinkFromOrigin();

        while (concurrentReqCount.get() > 0) {
            origin.recordProxyRequestEnd();
            concurrentReqCount.decrementAndGet();
        }

        if (currentRequestStat != null) {
            if (error) {
                currentRequestStat.generalError();
            }
        }

        // Publish each of the request stats (ie. one for each attempt).
        if (!requestStats.isEmpty()) {
            int indexFinal = requestStats.size() - 1;
            for (int i = 0; i < requestStats.size(); i++) {
                RequestStat stat = requestStats.get(i);

                // Tag the final and non-final attempts.
                stat.finalAttempt(i == indexFinal);

                stat.finishIfNotAlready();
            }
        }

        if (error && (origCh != null)) {
            origCh.close();
        }
    }
Get the implementing origin.
<p>
Note: this method gets called in the constructor so if overloading it or any methods called within, you cannot
rely on your own constructor parameters.
zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java