From 5755ff762bdcd3e880b0984520fb93de7ea444d1 Mon Sep 17 00:00:00 2001 From: Athou Date: Fri, 22 May 2026 20:29:36 +0200 Subject: [PATCH] Trie is thread-safe, no need to recreate one every time --- .../java/com/commafeed/backend/feed/parser/FeedCleaner.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/parser/FeedCleaner.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/parser/FeedCleaner.java index 97aabb4a..127a388e 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/parser/FeedCleaner.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/parser/FeedCleaner.java @@ -15,6 +15,8 @@ public class FeedCleaner { private static final Pattern DOCTYPE_PATTERN = Pattern.compile("]*>", Pattern.CASE_INSENSITIVE); + private final Trie trie = Trie.builder().ignoreOverlaps().addKeywords(HtmlEntities.HTML_ENTITIES).build(); + public String clean(String xml) { xml = removeCharactersBeforeFirstXmlTag(xml); xml = removeInvalidXmlCharacters(xml); @@ -52,7 +54,7 @@ public class FeedCleaner { // Create a buffer sufficiently large that re-allocations are minimized. StringBuilder sb = new StringBuilder(source.length() << 1); - Collection emits = Trie.builder().ignoreOverlaps().addKeywords(HtmlEntities.HTML_ENTITIES).build().parseText(source); + Collection emits = trie.parseText(source); int prevIndex = 0; for (Emit emit : emits) {