Skip to content

Commit edd3fae

Browse files
authored
Merge pull request #39 from mariohofmann/master
Fix StringIndexOutOfBoundsException while parsing status from command…
2 parents 0d30ad9 + cac31b3 commit edd3fae

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

cmdline/src/main/java/org/tigris/subversion/svnclientadapter/commandline/CmdLineClientAdapter12.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
package org.tigris.subversion.svnclientadapter.commandline;
2121

2222
import java.io.File;
23+
import java.util.ArrayList;
24+
import java.util.List;
2325

2426
import org.tigris.subversion.svnclientadapter.ISVNAnnotations;
2527
import org.tigris.subversion.svnclientadapter.ISVNNotifyListener;
@@ -88,11 +90,14 @@ protected CmdLineStatusPart[] getCmdStatuses(String[] paths, boolean descend, bo
8890
}
8991
String statusLinesString = ((SvnCommandLine12) _cmd).statusByStdout(paths, descend, getAll, false, ignoreExternals);
9092
String[] parts = StringUtils.split(statusLinesString,Helper.NEWLINE);
91-
CmdLineStatusPart[] cmdLineStatusParts = new CmdLineStatusPart[parts.length];
92-
for (int i = 0; i < parts.length;i++) {
93-
cmdLineStatusParts[i] = new CmdLineStatusPart.CmdLineStatusPartFromStdout(parts[i]);
93+
List<CmdLineStatusPart> statusPartList = new ArrayList<CmdLineStatusPart>();
94+
for (int i = 0; i < parts.length; i++) {
95+
if (parts[i].length() < CmdLineStatusPart.CmdLineStatusPartFromStdout.STATUS_FILE_WIDTH) {
96+
continue;
97+
}
98+
statusPartList.add(new CmdLineStatusPart.CmdLineStatusPartFromStdout(parts[i]));
9499
}
95-
return cmdLineStatusParts;
100+
return statusPartList.toArray(new CmdLineStatusPart[0]);
96101
}
97102

98103
protected ISVNAnnotations annotate(String target, SVNRevision revisionStart, SVNRevision revisionEnd) throws SVNClientException {

0 commit comments

Comments
 (0)