@Override public void endSubsegment(AWSXRayRecorder recorder) { Entity current = getTraceEntity(); if (current instanceof Subsegment) { if (logger.isDebugEnabled()) { logger.debug("Ending subsegment named: " + current.getName()); } Subsegment currentSubsegment = (Subsegment) current; currentSubsegment.end(); if (recorder.getStreamingStrategy().requiresStreaming(currentSubsegment.getParentSegment())) { recorder.getStreamingStrategy().streamSome(currentSubsegment.getParentSegment(), recorder.getEmitter()); } Entity parentEntity = current.getParent(); if (parentEntity instanceof FacadeSegment) { if (((FacadeSegment) parentEntity).isSampled()) { current.getCreator().getEmitter().sendSubsegment((Subsegment) current); } clearTraceEntity(); } else { setTraceEntity(current.getParent()); } } else { throw new SubsegmentNotFoundException("Failed to end a subsegment: subsegment cannot be found."); } } }
@Override public void endSubsegment(AWSXRayRecorder recorder) { Entity current = getTraceEntity(); if (current instanceof Subsegment) { if (logger.isDebugEnabled()) { logger.debug("Ending subsegment named: " + current.getName()); } Subsegment currentSubsegment = (Subsegment) current; currentSubsegment.end(); if (recorder.getStreamingStrategy().requiresStreaming(currentSubsegment.getParentSegment())) { recorder.getStreamingStrategy().streamSome(currentSubsegment.getParentSegment(), recorder.getEmitter()); } Entity parentEntity = current.getParent(); if (parentEntity instanceof FacadeSegment) { if (((FacadeSegment) parentEntity).isSampled()) { current.getCreator().getEmitter().sendSubsegment((Subsegment) current); } clearTraceEntity(); } else { setTraceEntity(current.getParent()); } } else { throw new SubsegmentNotFoundException("Failed to end a subsegment: subsegment cannot be found."); } } }