in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/entities/TraceID.java [58:86]
public static TraceID fromString(String xrayTraceId) {
xrayTraceId = xrayTraceId.trim();
if (xrayTraceId.length() != TRACE_ID_LENGTH) {
return TraceID.create();
}
// Check version trace id version
if (xrayTraceId.charAt(0) != VERSION) {
return TraceID.create();
}
// Check delimiters
if (xrayTraceId.charAt(TRACE_ID_DELIMITER_INDEX_1) != DELIMITER
|| xrayTraceId.charAt(TRACE_ID_DELIMITER_INDEX_2) != DELIMITER) {
return TraceID.create();
}
String startTimePart = xrayTraceId.substring(TRACE_ID_DELIMITER_INDEX_1 + 1, TRACE_ID_DELIMITER_INDEX_2);
if (!isHex(startTimePart)) {
return TraceID.create();
}
String randomPart = xrayTraceId.substring(TRACE_ID_DELIMITER_INDEX_2 + 1, TRACE_ID_LENGTH);
if (!isHex(randomPart)) {
return TraceID.create();
}
return new TraceID(startTimePart, randomPart);
}