@Test
  public void testTimeoutRequestUpdateHistogramByDefault() throws Exception {
    doPut();
    VerifiableProperties vprops = new VerifiableProperties(getDefaultNonBlockingRouterProperties(false));
    RouterConfig routerConfig = new RouterConfig(vprops);
    GetBlobOperation op = createOperation(routerConfig, null);
    op.poll(requestRegistrationCallback);
    while (!op.isOperationComplete()) {
      time.sleep(routerConfig.routerRequestTimeoutMs + 1);
      op.poll(requestRegistrationCallback);
    }
    Assert.assertEquals("Must have attempted sending requests to all replicas", replicasCount,
        correlationIdToGetOperation.size());
    Assert.assertEquals(RouterErrorCode.OperationTimedOut,
        ((RouterException) op.getOperationException()).getErrorCode());
    assumeTrue(operationTrackerType.equals(AdaptiveOperationTracker.class.getSimpleName()));
    AdaptiveOperationTracker tracker = (AdaptiveOperationTracker) op.getFirstChunkOperationTrackerInUse();

    Assert.assertEquals("Number of data points in local colo latency histogram is not expected", 3,
        tracker.getLatencyHistogram(RouterTestHelpers.getAnyReplica(blobId, true, localDcName)).getCount());
    Assert.assertEquals("Number of data points in cross colo latency histogram is not expected", 6,
        tracker.getLatencyHistogram(RouterTestHelpers.getAnyReplica(blobId, false, localDcName)).getCount());
  }
Test that timed out requests are allowed to update Histogram by default.
@throws Exception
ambry-router/src/test/java/com/github/ambry/router/GetBlobOperationTest.java