You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2024/08/24 14:30:40 UTC
(sling-org-apache-sling-engine) 01/01: SLING-12301 improve error handling
This is an automated email from the ASF dual-hosted git repository.
joerghoh pushed a commit to branch SLING-12301
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-engine.git
commit 26ace44c2e54be3cb7f138a36bb126412c3fb388
Author: Joerg Hoh <jo...@apache.org>
AuthorDate: Sat Aug 24 16:30:23 2024 +0200
SLING-12301 improve error handling
---
.../engine/impl/helper/SlingServletContext.java | 32 ++++++++++++----------
1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/src/main/java/org/apache/sling/engine/impl/helper/SlingServletContext.java b/src/main/java/org/apache/sling/engine/impl/helper/SlingServletContext.java
index 683ffda..f8850f1 100644
--- a/src/main/java/org/apache/sling/engine/impl/helper/SlingServletContext.java
+++ b/src/main/java/org/apache/sling/engine/impl/helper/SlingServletContext.java
@@ -240,23 +240,27 @@ public class SlingServletContext implements ServletContext, ServletContextListen
// async registration
this.runAsync(
() -> {
- final boolean register;
- synchronized (SlingServletContext.this) {
- register = SlingServletContext.this.servletContext == delegatee;
- }
- if (register) {
- final ServiceRegistration<ServletContext> reg = registerServletContext();
- boolean immediatelyUnregister = false;
+ try {
+ final boolean register;
synchronized (SlingServletContext.this) {
- if (SlingServletContext.this.initCounter == counter) {
- SlingServletContext.this.registration = reg;
- } else {
- immediatelyUnregister = true;
- }
+ register = SlingServletContext.this.servletContext == delegatee;
}
- if (immediatelyUnregister) {
- unregisterServletContext(reg);
+ if (register) {
+ final ServiceRegistration<ServletContext> reg = registerServletContext();
+ boolean immediatelyUnregister = false;
+ synchronized (SlingServletContext.this) {
+ if (SlingServletContext.this.initCounter == counter) {
+ SlingServletContext.this.registration = reg;
+ } else {
+ immediatelyUnregister = true;
+ }
+ }
+ if (immediatelyUnregister) {
+ unregisterServletContext(reg);
+ }
}
+ } catch (Throwable t) {
+ log.error("caught exception during async registration", t);
}
},
"registration");