From 56fc4cd0e387948dcfdd5178b9bc1738a430de36 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Tue, 31 Mar 2026 10:35:20 -0700 Subject: [PATCH 1/3] Clear warnings after encrypted content is cleared --- api/src/org/labkey/api/security/Encryption.java | 1 + api/src/org/labkey/api/view/template/WarningService.java | 1 + .../core/view/template/bootstrap/WarningServiceImpl.java | 7 ++++--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/org/labkey/api/security/Encryption.java b/api/src/org/labkey/api/security/Encryption.java index e7dd5bb8d6c..032667906ff 100644 --- a/api/src/org/labkey/api/security/Encryption.java +++ b/api/src/org/labkey/api/security/Encryption.java @@ -672,6 +672,7 @@ public static void deleteEncryptedContent(User user) event.setChanges(changes); AuditLogService.get().addEvent(user, event); CacheManager.clearAllKnownCaches(); + WarningService.get().clearStaticWarnings(); LOG.info("Finished deleting all encrypted content"); } diff --git a/api/src/org/labkey/api/view/template/WarningService.java b/api/src/org/labkey/api/view/template/WarningService.java index 9923e81c169..16f1e8c783b 100644 --- a/api/src/org/labkey/api/view/template/WarningService.java +++ b/api/src/org/labkey/api/view/template/WarningService.java @@ -42,4 +42,5 @@ static void setInstance(WarningService impl) Warnings getWarnings(@Nullable ViewContext context); HtmlString getWarningsHtml(Warnings warnings, ViewContext context); void rerunSchemaCheck(); // Doesn't really fit on this service, but there's no better existing service + void clearStaticWarnings(); } diff --git a/core/src/org/labkey/core/view/template/bootstrap/WarningServiceImpl.java b/core/src/org/labkey/core/view/template/bootstrap/WarningServiceImpl.java index ff227e7001e..a4d9137a4a6 100644 --- a/core/src/org/labkey/core/view/template/bootstrap/WarningServiceImpl.java +++ b/core/src/org/labkey/core/view/template/bootstrap/WarningServiceImpl.java @@ -61,7 +61,7 @@ private static class LazyInitializer SHOW_ALL_WARNINGS = OptionalFeatureService.get().isFeatureEnabled(EXPERIMENTAL_SHOW_ALL_WARNINGS); OptionalFeatureService.get().addFeatureListener(EXPERIMENTAL_SHOW_ALL_WARNINGS, (feature, enabled) -> { SHOW_ALL_WARNINGS = enabled; - clearStaticWarnings(); // Force static warnings to be re-collected since flag has changed + WarningService.get().clearStaticWarnings(); // Force static warnings to be re-collected since flag has changed }); } } @@ -86,7 +86,8 @@ public void register(WarningProvider provider) clearStaticWarnings(); } - private static void clearStaticWarnings() + @Override + public void clearStaticWarnings() { synchronized (STATIC_WARNING_LOCK) { @@ -194,7 +195,7 @@ private void appendMessageContent(Warnings warnings, HtmlStringBuilder html) List messages = warnings.getMessages(); if (messages.size() == 1) - html.append(messages.get(0)); + html.append(messages.getFirst()); else { html.startTag("ul"); From 174cfa5fb2252f460c530873374a1c8ac222e2de Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Tue, 31 Mar 2026 10:50:48 -0700 Subject: [PATCH 2/3] Clear the exception counter as well --- api/src/org/labkey/api/security/Encryption.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/src/org/labkey/api/security/Encryption.java b/api/src/org/labkey/api/security/Encryption.java index 032667906ff..5f913e3f665 100644 --- a/api/src/org/labkey/api/security/Encryption.java +++ b/api/src/org/labkey/api/security/Encryption.java @@ -672,6 +672,8 @@ public static void deleteEncryptedContent(User user) event.setChanges(changes); AuditLogService.get().addEvent(user, event); CacheManager.clearAllKnownCaches(); + // Reset the counter and clear the warnings + DECRYPTION_EXCEPTIONS.set(0); WarningService.get().clearStaticWarnings(); LOG.info("Finished deleting all encrypted content"); } From 336f945aec847266069e0ef80244c7a7f225e0eb Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Tue, 31 Mar 2026 11:07:28 -0700 Subject: [PATCH 3/3] Suppress "Parent Type" in title if not filtered --- core/src/org/labkey/core/admin/AdminController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/org/labkey/core/admin/AdminController.java b/core/src/org/labkey/core/admin/AdminController.java index 7ee5917faa8..f5378956d20 100644 --- a/core/src/org/labkey/core/admin/AdminController.java +++ b/core/src/org/labkey/core/admin/AdminController.java @@ -3688,7 +3688,7 @@ public AttachmentsForTypeAction() public void addNavTrail(NavTree root) { String parentType = getViewContext().getActionURL().getParameter("core.ParentType~eq"); - addAdminNavTrail(root, "Documents Belonging to Parent Type" + (parentType != null ? " \"" + parentType + "\"" : ""), getClass()); + addAdminNavTrail(root, parentType != null ? "Documents Belonging to Parent Type \"" + parentType + "\"" : "Documents", getClass()); } }