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
