I think I found a problem in the EclipseParser RegEx, which is quite easy to fix:
matches newlines, creating a RegEx that has to scan the whole remaining file for each possible match up to this point. Changing this to:
confines the match to the current line and fixes the quadratic runtime. Maybe add a test with timeout (
) which parses my attached testcase as a verification.
Oh, and thanks for the awesome Jenkins plugin(s)
(Shout out to https://regex101.com/ for helping me find this problem)
Quite "interesting" to see how the Eclipse Parser parses javac into totally wrong errors, but that is probably a new bug...
PPS: Scratch that, I made an error. There are some other oddities in that regular expression (1-character character-groups, useless non-capture groups). It would also probably not hurt to restrict the search space for the "marker line" (line only with ^ chars) to maybe ~5 lines. I'll send a pull request this evening.