MAPREDUCE-6693. ArrayIndexOutOfBoundsException occurs when the length of the job name is equal to mapreduce.jobhistory.jobname.limit. Contributed by Ajith S.
(cherry picked from commit b3579305268bffc44a8041c5b75f15f01ebb9ce4) (cherry picked from commit 19db965c2776e86095ecd31d7e582aca07d1e789)
This commit is contained in:
parent
388b2010ae
commit
fc221ecf3d
@ -311,7 +311,7 @@ private static String trimURLEncodedString(
|
||||
String encodedString, int limitLength) {
|
||||
assert(limitLength >= 0) : "limitLength should be positive integer";
|
||||
|
||||
if (encodedString.length() < limitLength) {
|
||||
if (encodedString.length() <= limitLength) {
|
||||
return encodedString;
|
||||
}
|
||||
|
||||
|
@ -481,4 +481,29 @@ public void testJobHistoryFileNameBackwardsCompatible() throws IOException {
|
||||
Assert.assertNull("Queue name incorrect after decoding old history file",
|
||||
info.getQueueName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTrimJobNameEqualsLimitLength() throws IOException {
|
||||
int jobNameTrimLength = 9;
|
||||
JobIndexInfo info = new JobIndexInfo();
|
||||
JobID oldJobId = JobID.forName(JOB_ID);
|
||||
JobId jobId = TypeConverter.toYarn(oldJobId);
|
||||
info.setJobId(jobId);
|
||||
info.setSubmitTime(Long.parseLong(SUBMIT_TIME));
|
||||
info.setUser(USER_NAME);
|
||||
info.setJobName(JOB_NAME);
|
||||
info.setFinishTime(Long.parseLong(FINISH_TIME));
|
||||
info.setNumMaps(Integer.parseInt(NUM_MAPS));
|
||||
info.setNumReduces(Integer.parseInt(NUM_REDUCES));
|
||||
info.setJobStatus(JOB_STATUS);
|
||||
info.setQueueName(QUEUE_NAME);
|
||||
info.setJobStartTime(Long.parseLong(JOB_START_TIME));
|
||||
|
||||
String jobHistoryFile = FileNameIndexUtils.getDoneFileName(info,
|
||||
jobNameTrimLength);
|
||||
JobIndexInfo parsedInfo = FileNameIndexUtils.getIndexInfo(jobHistoryFile);
|
||||
|
||||
Assert.assertEquals("Job name did not get trimmed correctly", info
|
||||
.getJobName().substring(0, jobNameTrimLength), parsedInfo.getJobName());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user