in aws-xray-agent/src/main/java/com/amazonaws/xray/agent/runtime/models/XRayTransactionContext.java [75:93]
public void endSubsegment(AWSXRayRecorder recorder) {
Entity current = getTraceEntity();
if (current instanceof Subsegment) {
if (log.isDebugEnabled()) {
log.debug("Ending subsegment named: " + current.getName());
}
Subsegment currentSubsegment = (Subsegment) current;
if (currentSubsegment.end()) {
recorder.sendSegment(currentSubsegment.getParentSegment());
} else {
if (recorder.getStreamingStrategy().requiresStreaming(currentSubsegment.getParentSegment())) {
recorder.getStreamingStrategy().streamSome(currentSubsegment.getParentSegment(), recorder.getEmitter());
}
setTraceEntity(current.getParent());
}
} else {
recorder.getContextMissingStrategy().contextMissing("Failed to end subsegment: subsegment cannot be found.", SubsegmentNotFoundException.class);
}
}