Skip to content

[MNG-7846] endless loop in DefaultExceptionHandler.getMessage() #9077

@jira-importer

Description

@jira-importer

Michael Keppler opened MNG-7846 and commented

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 

t != null && t != t.getCause()

Affects: 3.9.3

Attachments:

Remote Links:

Backported to: 4.0.0-alpha-8, 3.9.4

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingpriority:majorMajor loss of function

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions