code: void onComplete(TraceRouteThread trace, boolean isError, boolean isArrived, TraceRouteContainer routeContainer) {
          if (threads != null) {
              synchronized (mLock) {
                  try {
                      threads.remove(trace);
                  } catch (NullPointerException e) {
                      e.printStackTrace();
                  }
              }
          }
          if (!isDone) {
              if (isError)
                  this.errorCount++;
              this.isArrived = isArrived;
              if (routeContainers != null && routeContainer != null)
                  routeContainers.add(routeContainer);
          }
          if (countDownLatch != null && countDownLatch.getCount() > 0)
              countDownLatch.countDown();
      }
docs: Will the run thread is complete should call this method
  
  @param trace          TraceRouteThread
  @param isError        The run status
  @param isArrived      Is Arrived the ip
  @param routeContainer TraceRouteContainer