in src/main/java/org/apache/sling/engine/impl/SlingJakartaHttpServletResponseImpl.java [361:383]
private List<String> getLastMessagesOfProgressTracker() {
// Collect the last MAX_NR_OF_MESSAGES messages from the RequestProgressTracker
// to prevent excessive memory
// consumption errors when close to infinite recursive calls are made
int nrOfOriginalMessages = 0;
boolean gotCut = false;
Iterator<String> messagesIterator =
requestData.getRequestProgressTracker().getMessages();
LinkedList<String> lastMessages = new LinkedList<>();
while (messagesIterator.hasNext()) {
nrOfOriginalMessages++;
if (gotCut || lastMessages.size() >= MAX_NR_OF_MESSAGES) {
lastMessages.removeFirst();
gotCut = true;
}
lastMessages.add(messagesIterator.next());
}
if (gotCut) {
lastMessages.addFirst("... cut " + (nrOfOriginalMessages - MAX_NR_OF_MESSAGES) + " messages ...");
}
return lastMessages;
}