Uploaded image for project: 'Maven Surefire'
  1. Maven Surefire
  2. SUREFIRE-1496

Dump file error for java.lang.module.ResolutionException

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.21.0
    • Fix Version/s: None
    • Component/s: process forking
    • Labels:
      None

      Description

      Scenario:

      • two JPMS modules `org.foo.a` and `org.foo.b`, both with module-info
      • `org.foo.a` requires `org.foo.b`
      • `org.foo.b` exports package `org.foo.b.c`
      • `org.foo.a` contains a text file: src/main/resources/org/foo/b/c/Foo.txt
      • when surefire is run on module `org.foo.a` a dump file error occurs:

       

      Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'Error occurred during initialization of boot layer'.
      java.lang.IllegalArgumentException: Stream stdin corrupted. Expected comma after third character in command 'Error occurred during initialization of boot layer'.
       at org.apache.maven.plugin.surefire.booterclient.output.ForkClient$OperationalData.<init>(ForkClient.java:511)
       at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.processLine(ForkClient.java:209)
       at org.apache.maven.plugin.surefire.booterclient.output.ForkClient.consumeLine(ForkClient.java:176)
       at org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer$Pumper.run(ThreadedStreamConsumer.java:88)
       at java.base/java.lang.Thread.run(Thread.java:844)
      Created on 2018-03-07T11:32:36.053
      Corrupted STDOUT by directly writing to native stream in forked JVM 1. Stream 'java.lang.module.ResolutionException: Module org.foo.a contains package org.foo.b.c, module org.foo.b exports package org.foo.b.c to org.foo.a'. 
      

       

      While the scenario is one that JPMS rejects, surefire should handle it better. The compiler compiles the code just fine because it doesn't see the resources as a package. Surefire is thus the first part of Maven that sees it as a "package" that clashes with the module org.foo.b.

      Clearly, some part of surefire needs to be taught to about java.lang.module.ResolutionException, as the error is tricky to find/see because it is a dump file.

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              scolebourne@joda.org Stephen Colebourne
            • Votes:
              3 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated: