cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ugo Cei <...@apache.org>
Subject IOUtils testcase failing
Date Sun, 18 Apr 2004 22:44:48 GMT
Our latest CVS head has (at least) one failing testcase:

Testcase: testNormalizedFilename took 0,158 sec
         Caused an ERROR
0
java.lang.ArrayIndexOutOfBoundsException: 0
         at  
org.apache.cocoon.util.IOUtils.normalizedFilename(IOUtils.java:203)
         at  
org.apache.cocoon.util.test.IOUtilsTestCase.testNormalizedFilename(IOUti 
lsTestCase.java:80)

I gave a look at the IOUtils and IOUtilsTestCase classes and it looks  
like they haven't changed in quite some time, so the problem lies  
somewhere else.

   public static String normalizedFilename(String filename) {
     if(File.separatorChar == '\\')
         filename = filename.replace('/','\\');
     else
         filename = filename.replace('\\','/');
     String[] path = StringUtils.split(filename, File.separator);
     int start = (path[0].length() == 0) ? 1 : 0;

The last line is line 203 and the error happens when the method is  
invoked with an empty string as its argument. According to the API  
docs, the StringUtils.split function returns an empty array when  
invoked with an empty string argument. Thus, referencing path[0] causes  
an AIOOB exception. So, the problem is clear, and the fix should be  
easy.

What I'd like to know is: when did this test start failing? Probably  
after an upgrade to commons-lang, it seems. Then, why do we never  
bother to run our (very limited) test suite before committing a patch?

	Ugo


Mime
View raw message