in gradle-runner-agent/src/main/java/jetbrains/buildServer/gradle/runtime/output/TestOutputParser.java [22:46]
public static String getMessageWithParsing(@NotNull String message, int maxLength) {
if (message.length() <= maxLength) return message;
// Find inner service messages and try not to split each message
int start = message.indexOf(SERVICE_MESSAGE_START);
if (start == -1 || start > maxLength) return message.substring(0, maxLength);
int end = getEndMessage(message, start);
if (end == -1) return message.substring(0, maxLength);
if (end > maxLength) return message.substring(0, start > 0 ? start : maxLength);
while (end < maxLength) {
int newStart = message.indexOf(SERVICE_MESSAGE_START, end);
if (newStart == -1 || newStart >= maxLength) return message.substring(0, maxLength);
int newEnd = getEndMessage(message, newStart);
if (newEnd == -1) return message.substring(0, maxLength);
if (newEnd >= maxLength) return message.substring(0, newStart);
end = newEnd;
}
return message.substring(0, end);
}