Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-7846

endless loop in DefaultExceptionHandler.getMessage()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.9.3
    • 3.9.4, 4.0.0-alpha-8, 4.0.0
    • Core
    • None

    Description

      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:

      The loop cancelation condition should therefore be changed to 

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

      Attachments

        1. image-2023-07-19-13-59-02-398.png
          44 kB
          Michael Keppler

        Issue Links

          Activity

            People

              cstamas Tamas Cservenak
              bananeweizen Michael Keppler
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: