modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/util/LatencyView.java [120:200]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (!scheduler.isShutdown()) {
            scheduler.shutdownNow();
        }
    }

    /**
     * Report the timestamp values captured during mediating messages back and forth
     *
     * @param reqArrival The request arrival time
     * @param reqDeparture The request departure time (backend connection establishment)
     * @param resArrival The resoponse arrival time
     * @param resDeparture The response departure time
     */
    public void notifyTimes(long reqArrival, long reqDeparture,
                            long resArrival, long resDeparture) {

        long latency = (resDeparture - reqArrival) - (resArrival - reqDeparture);
        lastLatency.set(latency);
        latencyDataQueue.offer(latency);
    }

    @Override
    public double getAllTimeAvgLatency() {
        return allTimeAvgLatency;
    }

    @Override
    public double getLastMinuteAvgLatency() {
        return getAverageLatencyByMinute(1);
    }

    @Override
    public double getLast5MinuteAvgLatency() {
        return getAverageLatencyByMinute(5);
    }

    @Override
    public double getLast15MinuteAvgLatency() {
        return getAverageLatencyByMinute(15);
    }

    @Override
    public double getLastHourAvgLatency() {
        return getAverageLatencyByHour(1);
    }

    @Override
    public double getLast8HourAvgLatency() {
        return getAverageLatencyByHour(8);
    }

    @Override
    public double getLast24HourAvgLatency() {
        return getAverageLatencyByHour(24);
    }

    @Override
    public void reset() {
        lastLatency.set(0);
        allTimeAvgLatency = 0.0;
        latencyDataQueue.clear();
        shortTermLatencyDataQueue.clear();
        longTermLatencyDataQueue.clear();
        count = 0;
        resetTime = Calendar.getInstance().getTime();
    }

    @Override
    public Date getLastResetTime() {
        return resetTime;
    }

    private double getAverageLatencyByMinute(int n) {
        int samples = n * SAMPLES_PER_MINUTE;
        double sum = 0.0;
        Long[] array = shortTermLatencyDataQueue.toArray(new Long[shortTermLatencyDataQueue.size()]);

        if (samples > array.length) {
            // If we don't have enough samples collected yet
            // add up everything we have
            samples = array.length;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/passthru/jmx/LatencyView.java [117:197]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (!scheduler.isShutdown()) {
            scheduler.shutdownNow();
        }
    }

    /**
     * Report the timestamp values captured during mediating messages back and forth
     *
     * @param reqArrival The request arrival time
     * @param reqDeparture The request departure time (backend connection establishment)
     * @param resArrival The response arrival time
     * @param resDeparture The response departure time
     */
    public void notifyTimes(long reqArrival, long reqDeparture,
                            long resArrival, long resDeparture) {

        long latency = (resDeparture - reqArrival) - (resArrival - reqDeparture);
        lastLatency.set(latency);
        latencyDataQueue.offer(latency);
    }

    @Override
    public double getAllTimeAvgLatency() {
        return allTimeAvgLatency;
    }

    @Override
    public double getLastMinuteAvgLatency() {
        return getAverageLatencyByMinute(1);
    }

    @Override
    public double getLast5MinuteAvgLatency() {
        return getAverageLatencyByMinute(5);
    }

    @Override
    public double getLast15MinuteAvgLatency() {
        return getAverageLatencyByMinute(15);
    }

    @Override
    public double getLastHourAvgLatency() {
        return getAverageLatencyByHour(1);
    }

    @Override
    public double getLast8HourAvgLatency() {
        return getAverageLatencyByHour(8);
    }

    @Override
    public double getLast24HourAvgLatency() {
        return getAverageLatencyByHour(24);
    }

    @Override
    public void reset() {
        lastLatency.set(0);
        allTimeAvgLatency = 0.0;
        latencyDataQueue.clear();
        shortTermLatencyDataQueue.clear();
        longTermLatencyDataQueue.clear();
        count = 0;
        resetTime = Calendar.getInstance().getTime();
    }

    @Override
    public Date getLastResetTime() {
        return resetTime;
    }

    private double getAverageLatencyByMinute(int n) {
        int samples = n * SAMPLES_PER_MINUTE;
        double sum = 0.0;
        Long[] array = shortTermLatencyDataQueue.toArray(new Long[shortTermLatencyDataQueue.size()]);

        if (samples > array.length) {
            // If we don't have enough samples collected yet
            // add up everything we have
            samples = array.length;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



