Mateusz Nowakowski created CAMEL-10085:
------------------------------------------

             Summary: UnsafeUriCharactersEncoder.checkRAW compiles regex  
pattern every call
                 Key: CAMEL-10085
                 URL: https://issues.apache.org/jira/browse/CAMEL-10085
             Project: Camel
          Issue Type: Improvement
    Affects Versions: 2.17.1
            Reporter: Mateusz Nowakowski


UnsafeUriCharactersEncoder.checkRAW compile regex  pattern every time it is 
called (and it is called really often due to stack: 
DefaultCamelContext.normalizeEndpointUri() -> URISUpport.normalizeUri() -> 
org.apache.camel.util.UnsafeUriCharactersEncoder.encode() -> checkRaw() -> 
Pattern.compile())

Under high load it leads to decrease performance.

The easiest fix is to precompile pattern:

{code}
    private static Pattern RAW_PATTERN = Pattern.compile("RAW\\([^\\)]+\\)");

(....)

    private static List<Pair> checkRAW(String s) {
        Matcher matcher = RAW_PATTERN.matcher(s);
        List<Pair> answer = new ArrayList<Pair>();
        // Check all occurrences
        while (matcher.find()) {
            answer.add(new Pair(matcher.start(), matcher.end()));
        }
        return answer;
    }

{code}





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to