From 885291fe873520ffc378bef970173692291b25e2 Mon Sep 17 00:00:00 2001 From: "Dennis.Scheffer" Date: Wed, 3 Sep 2025 11:23:27 +0200 Subject: [PATCH] AP-7517 Fix bug where bundled dictionaries would not overwrite local dictionaries even if they are more recent. GitOrigin-RevId: f6bd8326dcf714c6d820ba21d8c30c848aecc89b --- .../EventLogMetadataPersistence.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/platform/statistics/src/com/intellij/internal/statistic/eventLog/validator/storage/persistence/EventLogMetadataPersistence.java b/platform/statistics/src/com/intellij/internal/statistic/eventLog/validator/storage/persistence/EventLogMetadataPersistence.java index e71b5b6b2aaa..420c59b74260 100644 --- a/platform/statistics/src/com/intellij/internal/statistic/eventLog/validator/storage/persistence/EventLogMetadataPersistence.java +++ b/platform/statistics/src/com/intellij/internal/statistic/eventLog/validator/storage/persistence/EventLogMetadataPersistence.java @@ -169,17 +169,18 @@ public class EventLogMetadataPersistence extends BaseEventLogMetadataPersistence return true; } - private void initAllBuiltinDictionaries(@NotNull Path file) throws IOException { - RemoteDictionaryList dictionaryList; - try (InputStream stream = getClass().getClassLoader().getResourceAsStream(builtinDictionariesPath() + "dictionaries.json")) { + private RemoteDictionaryList readBuiltinDictionaryList() throws IOException { + try (InputStream stream = getClass().getClassLoader().getResourceAsStream(builtinDictionariesPath() + DICTIONARIES_LIST_FILE)) { if (stream == null) { - LOG.trace("Cannot load builtin dictionaries list"); - return; + return null; } String content = new String(stream.readAllBytes(), StandardCharsets.UTF_8); - dictionaryList = getRemoteDictionaryList(content); + return getRemoteDictionaryList(content); } + } + private void initAllBuiltinDictionaries(@NotNull Path file) throws IOException { + RemoteDictionaryList dictionaryList = readBuiltinDictionaryList(); if (dictionaryList == null) { LOG.trace("Cannot load builtin dictionaries list"); return; @@ -283,9 +284,7 @@ public class EventLogMetadataPersistence extends BaseEventLogMetadataPersistence DictionaryStorage builtinDictionaryStorage = new SimpleDictionaryStorage( tempDictionaryDir.toFile(), Dictionary.AccessMode.RANDOM_FILE_ACCESS ); - Path dictionariesList = Path.of(builtinDictionariesPath() + DICTIONARIES_LIST_FILE); - String dictionariesListJson = readJsonFileContent(dictionariesList); - RemoteDictionaryList builtinRemoteDictionaryList = getRemoteDictionaryList(dictionariesListJson); + RemoteDictionaryList builtinRemoteDictionaryList = readBuiltinDictionaryList(); // no builtin dictionaries, so we can not initialize them if (builtinRemoteDictionaryList == null) {