View | Details | Raw Unified | Return to bug 61054
Collapse All | Expand All

(-)src/jorphan/org/apache/jorphan/util/JOrphanUtils.java (-12 / +7 lines)
Lines 632-654 Link Here
632
        java.util.regex.Pattern pattern = caseSensitive ? 
632
        java.util.regex.Pattern pattern = caseSensitive ? 
633
                java.util.regex.Pattern.compile(regex) :  
633
                java.util.regex.Pattern.compile(regex) :  
634
                java.util.regex.Pattern.compile(regex, java.util.regex.Pattern.CASE_INSENSITIVE);
634
                java.util.regex.Pattern.compile(regex, java.util.regex.Pattern.CASE_INSENSITIVE);
635
        String newText = source;
636
        final String replacementQuoted = Matcher.quoteReplacement(replacement);
635
        final String replacementQuoted = Matcher.quoteReplacement(replacement);
637
        Matcher matcher = pattern.matcher(newText);
636
        Matcher matcher = pattern.matcher(source);
638
        int totalReplaced = 0;
637
        int totalReplaced = 0;
639
        while(true) {
638
        StringBuffer result = new StringBuffer(); // NOSONAR Matcher#appendReplacement needs a StringBuffer
640
            String previousText = newText;
639
        while(matcher.find()) {
641
            newText = matcher.replaceFirst(replacementQuoted);
640
            matcher.appendReplacement(result, replacementQuoted);
642
            matcher = pattern.matcher(newText);
641
            totalReplaced++;
643
            if(newText.equals(previousText)) {
644
                break;
645
            } else {
646
                totalReplaced++;
647
            }
648
        }
642
        }
643
        matcher.appendTail(result);
649
644
650
        return new Object[]{
645
        return new Object[]{
651
                newText,
646
                result.toString(),
652
                totalReplaced
647
                totalReplaced
653
        };
648
        };
654
    }
649
    }

Return to bug 61054