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 <garydgreg...@gmail.com> 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 <garydgreg...@gmail.com 
> <mailto:garydgreg...@gmail.com>> 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 <ralph.go...@dslextreme.com 
> <mailto:ralph.go...@dslextreme.com>> 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 
> > <jenk...@builds.apache.org <mailto:jenk...@builds.apache.org>> wrote:
> >
> > See <https://builds.apache.org/job/Log4j%202.x/changes 
> > <https://builds.apache.org/job/Log4j%202.x/changes>>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org 
> > <mailto:log4j-dev-unsubscr...@logging.apache.org>
> > For additional commands, e-mail: log4j-dev-h...@logging.apache.org 
> > <mailto:log4j-dev-h...@logging.apache.org>
> >
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org 
> <mailto:log4j-dev-unsubscr...@logging.apache.org>
> For additional commands, e-mail: log4j-dev-h...@logging.apache.org 
> <mailto:log4j-dev-h...@logging.apache.org>
> 
> 
> 
> 
> -- 
> E-Mail: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | 
> ggreg...@apache.org  <mailto:ggreg...@apache.org>
> 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: garydgreg...@gmail.com <mailto:garydgreg...@gmail.com> | 
> ggreg...@apache.org  <mailto:ggreg...@apache.org>
> 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>

Reply via email to