joerghoh commented on code in PR #55: URL: https://github.com/apache/sling-org-apache-sling-engine/pull/55#discussion_r1959590861
########## src/test/java/org/apache/sling/engine/impl/SlingHttpServletResponseImplTest.java: ########## @@ -107,8 +108,7 @@ public void testReset() { Mockito.verifyNoMoreInteractions(orig); } - @Test - public void testContentMethods() { + private String callTesteeAndGetLogMessage(String[] logMessages) { Review Comment: just to be exact: ```suggestion private String callTesteeAndGetRequestProgressTrackerMessage(String[] logMessages) { ``` ########## src/test/java/org/apache/sling/engine/impl/SlingHttpServletResponseImplTest.java: ########## @@ -137,7 +137,32 @@ public void testContentMethods() { ArgumentCaptor<String> logCaptor = ArgumentCaptor.forClass(String.class); verify(requestProgressTracker, times(1)).log(logCaptor.capture()); - String logMessage = logCaptor.getValue(); + return logCaptor.getValue(); + } + + @Test + public void testRecursiveCalls() { + + // build a string array which resembles the log of recursive includes (50 levels + // deep) + String[] recursivePartStrings = Arrays.copyOfRange(logMessages, 14, logMessages.length - 2); + String[] concatenatedArray = Stream.concat(Arrays.stream(logMessages), Arrays.stream(recursivePartStrings)) + .toArray(String[]::new); + for (int i = 0; i < 50; i++) { + concatenatedArray = Stream.concat(Arrays.stream(concatenatedArray), Arrays.stream(recursivePartStrings)) + .toArray(String[]::new); + } + + String logMessage = callTesteeAndGetLogMessage(concatenatedArray); Review Comment: ```suggestion String logMessage = callTesteeAndGetRequestProgressTrackerMessage(concatenatedArray); ``` ########## src/test/java/org/apache/sling/engine/impl/SlingHttpServletResponseImplTest.java: ########## @@ -137,7 +137,32 @@ public void testContentMethods() { ArgumentCaptor<String> logCaptor = ArgumentCaptor.forClass(String.class); verify(requestProgressTracker, times(1)).log(logCaptor.capture()); - String logMessage = logCaptor.getValue(); + return logCaptor.getValue(); + } + + @Test + public void testRecursiveCalls() { + + // build a string array which resembles the log of recursive includes (50 levels + // deep) + String[] recursivePartStrings = Arrays.copyOfRange(logMessages, 14, logMessages.length - 2); + String[] concatenatedArray = Stream.concat(Arrays.stream(logMessages), Arrays.stream(recursivePartStrings)) + .toArray(String[]::new); + for (int i = 0; i < 50; i++) { + concatenatedArray = Stream.concat(Arrays.stream(concatenatedArray), Arrays.stream(recursivePartStrings)) + .toArray(String[]::new); + } + + String logMessage = callTesteeAndGetLogMessage(concatenatedArray); + + // validate that the log message is cut off and only the last MAX_NR_OF_MESSAGES + // remain in the log message, check for the cut message + assertTrue(logMessage.contains("... cut 504 messages ...")); + } + + @Test + public void testContentMethods() { + String logMessage = callTesteeAndGetLogMessage(logMessages); Review Comment: ```suggestion String logMessage = callTesteeAndGetRequestProgressTrackerMessage(logMessages); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@sling.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org