Why not try defensive coding. I believe the variable j can cause the illegal index which means at some point the code is trying to access startTime1[3] which is not present in memory and unfortunately Java will throw exception.Also i+2 has the potential to access index out of bounds.
My advice would be to use and if statement
if(j<3 && i<log.length()-2)> startTime1[j] = columns[i+2];
}
Hope this solves you problem.....
PS.- Do not use Strings they are immutable use StringBuilder or StringBuffer if you want thread safe....