From 8e976d8dafa0c56e20e062067e4276cab2e41813 Mon Sep 17 00:00:00 2001 From: James Mortemore Date: Fri, 3 Apr 2026 20:45:56 +0100 Subject: [PATCH 1/3] fix: add default log filters for HikariDataSource and TableUtils After BanManager routes HikariCP/ORMLite output through the plugin logger instead of System.err, these messages become visible to WebEnhancer's log appender. Add default ignoreContains entries to filter out DB startup noise from report logs, and add E2E tests for the new filters. Related: BanManagement/BanManager#1050 --- common/src/main/resources/config.yml | 2 ++ e2e/tests/src/log-filtering.test.ts | 50 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/common/src/main/resources/config.yml b/common/src/main/resources/config.yml index 56a77e5..3dd1a91 100644 --- a/common/src/main/resources/config.yml +++ b/common/src/main/resources/config.yml @@ -14,3 +14,5 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/tests/src/log-filtering.test.ts b/e2e/tests/src/log-filtering.test.ts index 45e4f01..883e2f5 100644 --- a/e2e/tests/src/log-filtering.test.ts +++ b/e2e/tests/src/log-filtering.test.ts @@ -231,4 +231,54 @@ describeOrSkip('Log Filtering (ignoreContains)', () => { console.log('Report command output correctly filtered') } }, 60000) + + test('HikariDataSource messages are filtered from report logs', async () => { + const uniqueId = Date.now() + const hikariMessage = `HikariDataSource pool starting_${uniqueId}` + const normalMessage = `NormalMarkerHikari_${uniqueId}` + const logs = await captureLogsForReason( + 'Testing HikariDataSource filter', + normalMessage, + async () => { + await sendCommand(`say ${hikariMessage}`) + await sendCommand(`say ${normalMessage}`) + } + ) + + expect(logs).not.toBeNull() + if (logs != null) { + const hikariFound = logs.some(log => log.message.includes(hikariMessage)) + expect(hikariFound).toBe(false) + + const normalFound = logs.some(log => log.message.includes(normalMessage)) + expect(normalFound).toBe(true) + + console.log('HikariDataSource messages correctly filtered') + } + }, 60000) + + test('TableUtils messages are filtered from report logs', async () => { + const uniqueId = Date.now() + const tableUtilsMessage = `TableUtils creating table_${uniqueId}` + const normalMessage = `NormalMarkerTableUtils_${uniqueId}` + const logs = await captureLogsForReason( + 'Testing TableUtils filter', + normalMessage, + async () => { + await sendCommand(`say ${tableUtilsMessage}`) + await sendCommand(`say ${normalMessage}`) + } + ) + + expect(logs).not.toBeNull() + if (logs != null) { + const tableUtilsFound = logs.some(log => log.message.includes(tableUtilsMessage)) + expect(tableUtilsFound).toBe(false) + + const normalFound = logs.some(log => log.message.includes(normalMessage)) + expect(normalFound).toBe(true) + + console.log('TableUtils messages correctly filtered') + } + }, 60000) }) From f26153019ca74d259ec6154b5bebc13c5e2714aa Mon Sep 17 00:00:00 2001 From: James Mortemore Date: Fri, 3 Apr 2026 22:43:33 +0100 Subject: [PATCH 2/3] fix: add HikariDataSource and TableUtils filters to e2e platform configs The e2e config files are bind-mounted into Docker containers and since ignoreContains already exists, copyDefaults(true) won't append new entries from the JAR defaults. --- e2e/platforms/bukkit/configs/banmanager-webenhancer/config.yml | 2 ++ e2e/platforms/bungee/configs/banmanager-webenhancer/config.yml | 2 ++ e2e/platforms/fabric/configs/banmanager-webenhancer/config.yml | 2 ++ e2e/platforms/sponge/configs/banmanager-webenhancer/config.yml | 2 ++ e2e/platforms/sponge7/configs/banmanager-webenhancer/config.yml | 2 ++ .../velocity/configs/banmanager-webenhancer/config.yml | 2 ++ 6 files changed, 12 insertions(+) diff --git a/e2e/platforms/bukkit/configs/banmanager-webenhancer/config.yml b/e2e/platforms/bukkit/configs/banmanager-webenhancer/config.yml index 2f0912d..4b850df 100644 --- a/e2e/platforms/bukkit/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/bukkit/configs/banmanager-webenhancer/config.yml @@ -14,4 +14,6 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/platforms/bungee/configs/banmanager-webenhancer/config.yml b/e2e/platforms/bungee/configs/banmanager-webenhancer/config.yml index 17d8ad9..58c055b 100644 --- a/e2e/platforms/bungee/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/bungee/configs/banmanager-webenhancer/config.yml @@ -12,3 +12,5 @@ ignoreContains: - '[PlugMan]' - Metrics - For help, type "help" +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/platforms/fabric/configs/banmanager-webenhancer/config.yml b/e2e/platforms/fabric/configs/banmanager-webenhancer/config.yml index 2f0912d..4b850df 100644 --- a/e2e/platforms/fabric/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/fabric/configs/banmanager-webenhancer/config.yml @@ -14,4 +14,6 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/platforms/sponge/configs/banmanager-webenhancer/config.yml b/e2e/platforms/sponge/configs/banmanager-webenhancer/config.yml index 2f0912d..4b850df 100644 --- a/e2e/platforms/sponge/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/sponge/configs/banmanager-webenhancer/config.yml @@ -14,4 +14,6 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/platforms/sponge7/configs/banmanager-webenhancer/config.yml b/e2e/platforms/sponge7/configs/banmanager-webenhancer/config.yml index 2f0912d..4b850df 100644 --- a/e2e/platforms/sponge7/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/sponge7/configs/banmanager-webenhancer/config.yml @@ -14,4 +14,6 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' diff --git a/e2e/platforms/velocity/configs/banmanager-webenhancer/config.yml b/e2e/platforms/velocity/configs/banmanager-webenhancer/config.yml index 56a77e5..3dd1a91 100644 --- a/e2e/platforms/velocity/configs/banmanager-webenhancer/config.yml +++ b/e2e/platforms/velocity/configs/banmanager-webenhancer/config.yml @@ -14,3 +14,5 @@ ignoreContains: - '[PlugMan]' - 'Metrics' - 'For help, type "help"' +- 'HikariDataSource' +- 'TableUtils' From 0e25e11ad545d281eccf911b447b17038ac2750d Mon Sep 17 00:00:00 2001 From: James Mortemore Date: Sat, 4 Apr 2026 00:05:05 +0100 Subject: [PATCH 3/3] fix: rename TableUtils test marker to avoid self-filtering NormalMarkerTableUtils_ contained the substring 'TableUtils' and was being filtered by the very ignoreContains rule under test. --- e2e/tests/src/log-filtering.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/tests/src/log-filtering.test.ts b/e2e/tests/src/log-filtering.test.ts index 883e2f5..55a28c7 100644 --- a/e2e/tests/src/log-filtering.test.ts +++ b/e2e/tests/src/log-filtering.test.ts @@ -260,7 +260,7 @@ describeOrSkip('Log Filtering (ignoreContains)', () => { test('TableUtils messages are filtered from report logs', async () => { const uniqueId = Date.now() const tableUtilsMessage = `TableUtils creating table_${uniqueId}` - const normalMessage = `NormalMarkerTableUtils_${uniqueId}` + const normalMessage = `NormalMarkerTblUtils_${uniqueId}` const logs = await captureLogsForReason( 'Testing TableUtils filter', normalMessage,