I’ve added some system.out calls. What I am seeing on OS/X is that
FileUtils.fileFromURI tests for the files existence. If it exists it uses that
file name. If it does not exist it calls URLDecoder.decode(fileName, “UTF-8”)
and uses that to create the file object. The decode method replaces “+”
characters with spaces, which is precisely what causes the assertion failure.
I suspect the reason it is failing is because of the workspace name “Log4j
2.x”, which contains a URI encoded blank character. It seems to me there is
something not quite right with the fix for LOG4J2-466. It appears to appending
a non-URL-encoded relative path to a URL encoded path. It would seem that
neither the “new uri” or “Decoded fileName” would actually exist.
Here is the OS/X output:
Running org.apache.logging.log4j.core.util.FileUtilsTest
new uri:
file:/Users/rgoers/projects/apache/logging/log4j/log4j2/master/log4j-core/NON-EXISTING-PATH/this+file+does+not+exist.xml
Decoded fileName:
/Users/rgoers/projects/apache/logging/log4j/log4j2/master/log4j-core/NON-EXISTING-PATH/this
file does not exist.xml
new uri:
file:/Users/rgoers/projects/apache/logging/log4j/log4j2/master/log4j-core/target/test-classes/log4j+config+with+plus+characters.xml
FileName:
/Users/rgoers/projects/apache/logging/log4j/log4j2/master/log4j-core/target/test-classes/log4j+config+with+plus+characters.xml
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 sec - in
org.apache.logging.log4j.core.util.FileUtilsTest
and the output from Jenkins:
Running org.apache.logging.log4j.core.util.FileUtilsTest
new uri:
file:/home/jenkins/jenkins-slave/workspace/Log4j%202.x/log4j-core/NON-EXISTING-PATH/this+file+does+not+exist.xml
Decoded fileName: /home/jenkins/jenkins-slave/workspace/Log4j
2.x/log4j-core/NON-EXISTING-PATH/this file does not exist.xml
new uri:
file:/home/jenkins/jenkins-slave/workspace/Log4j%202.x/log4j-core/target/test-classes/log4j+config+with+plus+characters.xml
Decoded fileName: /home/jenkins/jenkins-slave/workspace/Log4j
2.x/log4j-core/target/test-classes/log4j config with plus characters.xml
Tests run: 5, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.038 sec <<<
FAILURE! - in org.apache.logging.log4j.core.util.FileUtilsTest
testFileFromUriWithPlusCharactersInName(org.apache.logging.log4j.core.util.FileUtilsTest)
Time elapsed: 0.008 sec <<< FAILURE!
org.junit.ComparisonFailure: expected:<log4j[+config+with+plus+]characters.xml>
but was:<log4j[ config with plus ]characters.xml>
at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at
org.apache.logging.log4j.core.util.FileUtilsTest.testFileFromUriWithPlusCharactersInName(FileUtilsTest.java:44)
Ralph
> On May 3, 2015, at 10:56 AM, Gary Gregory <[email protected]> wrote:
>
> I've added more asserts to
> org.apache.logging.log4j.core.util.FileUtilsTest.testFileExistsWithPlusCharactersInName().
>
> It all works for me on Oracle Java 6 and 7 (all 64 bit) on Windows.
>
> Must some Linux vs Windows thing?
>
> Gary
>
> On Sun, May 3, 2015 at 1:59 AM, Gary Gregory <[email protected]
> <mailto:[email protected]>> wrote:
> I added this test to help debug:
> org.apache.logging.log4j.core.util.FileUtilsTest.testFileExistsWithPlusCharactersInName()
>
> Going to bed now... 2am :-( Sorry I cannot help more ATM.
>
> Gary
>
> On Sun, May 3, 2015 at 12:13 AM, Ralph Goers <[email protected]
> <mailto:[email protected]>> wrote:
> I modified the configuration to use Java 7. These are the results.
>
> Ralph
>
> > On May 3, 2015, at 12:11 AM, Apache Jenkins Server
> > <[email protected] <mailto:[email protected]>> wrote:
> >
> > See <https://builds.apache.org/job/Log4j%202.x/changes
> > <https://builds.apache.org/job/Log4j%202.x/changes>>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > <mailto:[email protected]>
> > For additional commands, e-mail: [email protected]
> > <mailto:[email protected]>
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> <mailto:[email protected]>
> For additional commands, e-mail: [email protected]
> <mailto:[email protected]>
>
>
>
>
> --
> E-Mail: [email protected] <mailto:[email protected]> |
> [email protected] <mailto:[email protected]>
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/>
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>
>
>
> --
> E-Mail: [email protected] <mailto:[email protected]> |
> [email protected] <mailto:[email protected]>
> Java Persistence with Hibernate, Second Edition
> <http://www.manning.com/bauer3/>
> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
> Spring Batch in Action <http://www.manning.com/templier/>
> Blog: http://garygregory.wordpress.com <http://garygregory.wordpress.com/>
> Home: http://garygregory.com/ <http://garygregory.com/>
> Tweet! http://twitter.com/GaryGregory <http://twitter.com/GaryGregory>