diff --git a/core/src/main/java/lucee/runtime/engine/ThreadLocalPageContext.java b/core/src/main/java/lucee/runtime/engine/ThreadLocalPageContext.java index 4966b5602d..244d7856ec 100644 --- a/core/src/main/java/lucee/runtime/engine/ThreadLocalPageContext.java +++ b/core/src/main/java/lucee/runtime/engine/ThreadLocalPageContext.java @@ -20,7 +20,9 @@ import java.io.ByteArrayOutputStream; import java.util.Locale; +import java.util.Map; import java.util.TimeZone; +import java.util.concurrent.ConcurrentHashMap; import lucee.print; import lucee.commons.io.log.Log; @@ -107,6 +109,8 @@ public static Config getConfig() { } + public static Map stacktraces = new ConcurrentHashMap<>(); + /** * release the pagecontext for the current thread */ @@ -116,7 +120,8 @@ public static void release() { else print.e(Thread.currentThread().getName() + " do release: null"); pcThreadLocal.set(null); pcThreadLocalInheritable.set(null); - print.ds(Thread.currentThread().getName() + " released"); + print.e(Thread.currentThread().getName() + " released"); + stacktraces.put(Thread.currentThread().getName(), new Throwable()); } public static Config getConfig(PageContext pc) { diff --git a/core/src/main/java/lucee/runtime/type/EnvUDF.java b/core/src/main/java/lucee/runtime/type/EnvUDF.java index efb6cd39dc..141d12e4bf 100644 --- a/core/src/main/java/lucee/runtime/type/EnvUDF.java +++ b/core/src/main/java/lucee/runtime/type/EnvUDF.java @@ -59,7 +59,10 @@ public EnvUDF() {// needed for externalize } } catch (NullPointerException e) { + print.e(Thread.currentThread().getName() + " EnvUDF"); + print.e(e); + print.e(ThreadLocalPageContext.stacktraces.get(Thread.currentThread().getName())); throw e; } this.applicationContext = pc.getApplicationContext();