You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Mateusz Nowakowski (JIRA)" <ji...@apache.org> on 2016/06/23 07:55:16 UTC
[jira] [Created] (CAMEL-10085) UnsafeUriCharactersEncoder.checkRAW
compiles regex pattern every call
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)