docs: public void collectStackTraces(
  			int sampleId,
  			ExecutionAttemptID executionId,
  			List<StackTraceElement[]> stackTraces) {
  
  		synchronized (lock) {
  			if (isShutDown) {
  				return;
  			}
  
  			if (LOG.isDebugEnabled()) {
  				LOG.debug("Collecting stack trace sample {} of task {}", sampleId, executionId);
  			}
  
  			PendingStackTraceSample pending = pendingSamples.get(sampleId);
  
  			if (pending != null) {
  				pending.collectStackTraces(executionId, stackTraces);
  
  				// Publish the sample
  				if (pending.isComplete()) {
  					pendingSamples.remove(sampleId);
  					rememberRecentSampleId(sampleId);
  
  					pending.completePromiseAndDiscard();
  				}
  			} else if (recentPendingSamples.contains(sampleId)) {
  				if (LOG.isDebugEnabled()) {
  					LOG.debug("Received late stack trace sample {} of task {}",
  							sampleId, executionId);
  				}
  			} else {
  				if (LOG.isDebugEnabled()) {
  					LOG.debug("Unknown sample ID " + sampleId);
  				}
  			}
  		}
  	}