Michael Stumpf created MJAVADOC-544:
---------------------------------------

             Summary: Changed behaviour of Javadoc for temporary files encoding 
(options, argfile, ...)
                 Key: MJAVADOC-544
                 URL: https://issues.apache.org/jira/browse/MJAVADOC-544
             Project: Maven Javadoc Plugin
          Issue Type: Bug
          Components: javadoc
    Affects Versions: 3.0.1
         Environment: JDK9+, Windows
            Reporter: Michael Stumpf


With JDK9 the behaviour of javadoc has apparently changed (at least on Windows 
platform).


In a project with special characters (umlaut) in the organization name the 
content of the options file was written with the default platform encoding 
(cp1252).

As a result, the javadoc generation fails on javadoc execution with "Exit code: 
1 - javadoc: error - cannot read Input length = 1".


With JDK8 javadoc generation works.

It also succeeds with JDK9 and setting the environment variable: 
JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8

However, this should not be necessary, and maven-javadoc-plugin should work out 
of the box.

 
h6. Cause:

After some tests it appears to be the case that the JDK9 Javadoc reads @-files 
always with UTF-8 charset, regardless of platform encoding.


I looked into the issue and prepared a patch for the plugin when working with 
JDK9+ and added two tests for the temporary files options and argfile.

To my knowledge, the temporary file "packages" cannot contain special 
characters, since this isn't allowed in the java specification, so no 
workaround is added.

The file javadoc.bat is not affected (a test with a JDK in the directory 
"C:\jdk9äöüß" worked with the file being platform encoded).
h6. 
Resolution:

I'll try to create a pull request from 
https://github.com/michael-st/maven-javadoc-plugin



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to