Index: src/jorphan/org/apache/jorphan/util/JOrphanUtils.java =================================================================== --- src/jorphan/org/apache/jorphan/util/JOrphanUtils.java (Revision 1793181) +++ src/jorphan/org/apache/jorphan/util/JOrphanUtils.java (Arbeitskopie) @@ -632,23 +632,18 @@ java.util.regex.Pattern pattern = caseSensitive ? java.util.regex.Pattern.compile(regex) : java.util.regex.Pattern.compile(regex, java.util.regex.Pattern.CASE_INSENSITIVE); - String newText = source; final String replacementQuoted = Matcher.quoteReplacement(replacement); - Matcher matcher = pattern.matcher(newText); + Matcher matcher = pattern.matcher(source); int totalReplaced = 0; - while(true) { - String previousText = newText; - newText = matcher.replaceFirst(replacementQuoted); - matcher = pattern.matcher(newText); - if(newText.equals(previousText)) { - break; - } else { - totalReplaced++; - } + StringBuffer result = new StringBuffer(); // NOSONAR Matcher#appendReplacement needs a StringBuffer + while(matcher.find()) { + matcher.appendReplacement(result, replacementQuoted); + totalReplaced++; } + matcher.appendTail(result); return new Object[]{ - newText, + result.toString(), totalReplaced }; }