public Optional findCall()

in semantic-metrics/src/main/java/com/spotify/feline/MetricsConsumer.java [141:168]


    public Optional<StackTraceElement> findCall(
        final StackTraceElement[] stackTraceElements, final String blockingCall) {

      StackTraceElement nonJavaPkgFrame = null;
      boolean seenBlocking = false;

      for (final StackTraceElement element : stackTraceElements) {
        final String className = element.getClassName();
        if ((className + "." + element.getMethodName()).equals(blockingCall)) {
          seenBlocking = true;
          continue;
        }

        if (seenBlocking) {
          if (className.startsWith("com.spotify.")) {
            // can stop searching here
            return Optional.of(element);
          }

          if (!className.startsWith("java.") && nonJavaPkgFrame == null) {
            nonJavaPkgFrame = element;
          }
        }
      }

      // did not find a com.spotify frame - return the first non-java frame (if any)
      return Optional.ofNullable(nonJavaPkgFrame);
    }