Michael Keppler created MNG-7846:
------------------------------------
Summary: endless loop in DefaultExceptionHandler.getMessage()
Key: MNG-7846
URL: https://issues.apache.org/jira/browse/MNG-7846
Project: Maven
Issue Type: Bug
Components: Core
Affects Versions: 3.9.3
Reporter: Michael Keppler
Attachments: image-2023-07-19-13-59-02-398.png
The default exception handler iterates all nested exceptions in a loop that's
only left when exception.cause == null
See
[https://github.com/apache/maven/blob/4a5b6c5f2b662fbf356f86ffe44d99d3d52f9fa9/maven-core/src/main/java/org/apache/maven/exception/DefaultExceptionHandler.java#L228C56-L228C64]
Unfortunately there can be exceptions where the cause is a reference to the
containing exception, e.g. exception.cause == exception. That code then becomes
an endless loop. I just experienced such an endless loop and was able to find a
JRubyException pointing to itself in the heap dump of the thread:
!image-2023-07-19-13-59-02-398.png!
The loop cancelation condition should therefore be changed to
{code:java}
t != null && t != t.getCause(){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)