MAPREDUCE-5671. NaN can be created by client and assign to Progress (Chen He via jeagles)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1570620 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jonathan Turner Eagles 2014-02-21 16:23:12 +00:00
parent da20095284
commit aa4cbcfa79
2 changed files with 28 additions and 0 deletions

View File

@ -160,6 +160,31 @@ public class Progress {
/** Called during execution on a leaf node to set its progress. */
public synchronized void set(float progress) {
if (Float.isNaN(progress)) {
progress = 0;
LOG.warn("Illegal progress value found, progress is Float.NaN. " +
"Progress will be changed to 0");
}
else if (progress == Float.NEGATIVE_INFINITY) {
progress = 0;
LOG.warn("Illegal progress value found, progress is " +
"Float.NEGATIVE_INFINITY. Progress will be changed to 0");
}
else if (progress < 0) {
progress = 0;
LOG.warn("Illegal progress value found, progress is less than 0." +
" Progress will be changed to 0");
}
else if (progress > 1) {
progress = 1;
LOG.warn("Illegal progress value found, progress is larger than 1." +
" Progress will be changed to 1");
}
else if (progress == Float.POSITIVE_INFINITY) {
progress = 1;
LOG.warn("Illegal progress value found, progress is " +
"Float.POSITIVE_INFINITY. Progress will be changed to 1");
}
this.progress = progress;
}

View File

@ -147,6 +147,9 @@ Release 2.5.0 - UNRELEASED
IMPROVEMENTS
MAPREDUCE-5671. NaN can be created by client and assign to Progress (Chen
He via jeagles)
OPTIMIZATIONS
BUG FIXES