Uploaded image for project: 'Maven Javadoc Plugin'
  1. Maven Javadoc Plugin
  2. MJAVADOC-581

critical error with non-ASCII charcters in directory name: cannot read Input length = 1

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Incomplete
    • 3.0.1
    • None
    • javadoc
    • None

    Description

      This is a critical bug that breaks the build. I originally posted this on Stack Overflow but got no response.

      I'm using OpenJDK 11 on Windows 10. I have a very simple POM, for a single Java file, that generates Javadocs. Here is an extract:

          <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
          </properties>
      
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                  <execution>
                    <goals>
                      <goal>jar</goal>
                    </goals>
                  </execution>
                </executions>
              </plugin>
            </plugins>
          </build>
      

      Strangely just running mvn clean package causes an error:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.1:jar (default) on project foobar: MavenReportException: Error while generating Javadoc:
      [ERROR] Exit code: 1 - javadoc: error - cannot read Input length = 1
      [ERROR]
      [ERROR] Command line was: C:\bin\jdk-11\bin\javadoc.exe @options @packages
      

      In target/apidocs there are only three files: javadoc.bat, options, and packages. The options file is the most interesting. It explicitly says UTF-8 everywhere, as it should. But look at these lines:

      -sourcepath
      C:/projects/li��o 1/src/main/java
      

      This project is in C:\projects\lição 1. It appears that somewhere along the chain Java or Maven or the Javadoc plugin didn't correctly convert the directory name to UTF-8.

      Sure enough; when I renamed the directories in Windows to remove non-ASCII characters, mvn clean package worked just fine.

      This would seem like a blatant bug; once Maven starts, everything should be UTF-8 throughout.

      One answer on Stack Overflow gives you a hint of what's going wrong.

      In any case, I consider this to be a huge bug related to fundamental functioning. It absolutely must be fixed. Users can't suddenly see their build broken if their directory name has a non-ASCII character in it.

      Attachments

        Activity

          People

            Unassigned Unassigned
            garretwilson Garret Wilson
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: