diff --git a/core/src/main/java/lucee/commons/lang/ExceptionUtil.java b/core/src/main/java/lucee/commons/lang/ExceptionUtil.java index 5f5a913a03..73dec9af54 100644 --- a/core/src/main/java/lucee/commons/lang/ExceptionUtil.java +++ b/core/src/main/java/lucee/commons/lang/ExceptionUtil.java @@ -28,14 +28,12 @@ import java.util.Iterator; import lucee.commons.io.SystemUtil.TemplateLine; -import lucee.commons.io.log.LogUtil; import lucee.commons.io.res.Resource; import lucee.commons.io.res.util.ResourceUtil; import lucee.runtime.ComponentImpl; import lucee.runtime.PageContext; import lucee.runtime.PageContextImpl; import lucee.runtime.PageSource; -import lucee.runtime.config.Config; import lucee.runtime.config.ConfigWeb; import lucee.runtime.exp.ApplicationException; import lucee.runtime.exp.ExpressionException; @@ -303,11 +301,22 @@ public static FileNotFoundException toFileNotFoundException(NoSuchFileException public static void initCauseEL(Throwable e, Throwable cause) { if (cause == null) return; + + // get current root cause + Throwable tmp; + int count = 100; + do { + if (--count <= 0) break; // in case cause point to a child + tmp = e.getCause(); + if (tmp == null) break; + e = tmp; + } + while (true); + // attach to root cause try { e.initCause(cause); } - catch (IllegalStateException ise) { // avoid: Can't overwrite cause with ... - LogUtil.log((Config) null, "exception", cause); + catch (Exception ex) { } } diff --git a/loader/build.xml b/loader/build.xml index 3d8b98dde9..b7a69755c6 100644 --- a/loader/build.xml +++ b/loader/build.xml @@ -2,7 +2,7 @@ - + diff --git a/loader/pom.xml b/loader/pom.xml index be5ddd5f73..64625861b8 100644 --- a/loader/pom.xml +++ b/loader/pom.xml @@ -3,7 +3,7 @@ org.lucee lucee - 6.2.0.117-SNAPSHOT + 6.2.0.118-SNAPSHOT jar Lucee Loader Build