[ https://jira.codehaus.org/browse/SUREFIRE-951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=324659#comment-324659 ]
Stephan Schroevers commented on SUREFIRE-951: --------------------------------------------- Thanks Kristian. As per the observation in my [first comment|https://jira.codehaus.org/browse/SUREFIRE-951?focusedCommentId=317337#comment-317337], I'm also not so certain anymore about silently overriding {{file.encoding}}. An additional thing to consider is that if Surefire were to set {{-Dfile.encoding=$\{project.build.sourceEncoding\}}} by default, people would of course start to rely on it. That would make it harder to revert the decision later on. So without a convincing argument one way or the other, it might be better not to do anything at all. As such: I'd be okay with closing this ticket as-is: the additional warnings are useful in and of themselves. :) > Better handling of file.encoding system property > ------------------------------------------------ > > Key: SUREFIRE-951 > URL: https://jira.codehaus.org/browse/SUREFIRE-951 > Project: Maven Surefire > Issue Type: Bug > Components: Maven Surefire Plugin, process forking > Affects Versions: 2.13 > Environment: Any environment in which the file encoding is distinct > from ${project.build.sourceEncoding}. > Reporter: Stephan Schroevers > Attachments: file-encoding-example.tbz > > > It appears that Surefire doesn't (correctly) set > {{-Dfile.encoding=$\{project.build.sourceEncoding\}}} prior to running the > tests. As a result the JVM will derive {{file.encoding}} from the > environment's file encoding. This affects the return value of > {{java.nio.charset.Charset#defaultCharset()}}, which reads the > {{file.encoding}} system property exactly once, and is invoked very early on. > Concretely this means that the unit tests are unnecessarily platform > dependent. > Thus I have two requests: > # Make {{-Dfile.encoding=$\{project.build.sourceEncoding\}}} the default. > That is, the following configuration setting should be implied: > {noformat} > <argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine> > {noformat} > # Extend the method > {{org.apache.maven.plugin.surefire.SurefireProperties#verifyLegalSystemProperties(org.apache.maven.plugin.logging.Log)}} > such that is warns about users attempting to set the {{file.encoding}} > property through the {{systemPropertyVariables}} configuration setting. Like > with {{java.library.path}}, this does _not_ work. > I have [attached|^file-encoding-example.tbz] a sample project that > demonstrates the issue (simply run {{`mvn test`}}). Please have a look at the > comments I added to the POM. I have tested this sample project only on Linux, > but a colleague has confirmed that an instance of this issue can also be > recreated on Windows. > TIA for looking into this! -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira