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)