From faacc91f1698e85ba662f38c452c85252221a5e1 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Mon, 9 Aug 2021 20:23:37 +0800 Subject: [PATCH 1/8] HDDS-5558. vUnit invocation unit() may produce NPE --- .../main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java index 12c495393276..541ed8f38997 100644 --- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java +++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java @@ -55,7 +55,7 @@ public static long getTimeDurationHelper(String name, String vStr, } long raw = Long.parseLong(vStr); - long converted = unit.convert(raw, vUnit.unit()); + long converted = unit.convert(raw, vUnit != null ? vUnit.unit() : null); if (vUnit.unit().convert(converted, unit) < raw) { LOG.warn("Possible loss of precision converting " + vStr + vUnit.suffix() + " to " + unit + " for " + name); From 71d78d9c072cd3166ad911beb92b7009b4bfb9b7 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Mon, 9 Aug 2021 20:31:55 +0800 Subject: [PATCH 2/8] Use requireNonNull() method --- .../java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java index 541ed8f38997..7cbc980d4d58 100644 --- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java +++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java @@ -17,6 +17,7 @@ */ package org.apache.hadoop.hdds.conf; +import java.util.Objects; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; @@ -55,7 +56,7 @@ public static long getTimeDurationHelper(String name, String vStr, } long raw = Long.parseLong(vStr); - long converted = unit.convert(raw, vUnit != null ? vUnit.unit() : null); + long converted = unit.convert(raw, Objects.requireNonNull(vUnit).unit()); if (vUnit.unit().convert(converted, unit) < raw) { LOG.warn("Possible loss of precision converting " + vStr + vUnit.suffix() + " to " + unit + " for " + name); From efc85ae44917472b6ca982e844f082d6d889a4be Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Mon, 9 Aug 2021 22:30:55 +0800 Subject: [PATCH 3/8] Trigger notification From 3475ed45d2b6e194373fc21577e10d4e0ac8fe0a Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Tue, 10 Aug 2021 00:37:58 +0800 Subject: [PATCH 4/8] Trigger notification From 73434603ec278bf0094b726c93efac0e30bc1da1 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Tue, 10 Aug 2021 10:33:09 +0800 Subject: [PATCH 5/8] Trigger notification From 0ae858c131c3f6c799fb165e9465a708424da625 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Tue, 10 Aug 2021 13:46:33 +0800 Subject: [PATCH 6/8] throw NullPointerException --- .../org/apache/hadoop/hdds/conf/TimeDurationUtil.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java index 7cbc980d4d58..76c8e4e780b9 100644 --- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java +++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java @@ -17,7 +17,6 @@ */ package org.apache.hadoop.hdds.conf; -import java.util.Objects; import java.util.concurrent.TimeUnit; import org.slf4j.Logger; @@ -48,15 +47,18 @@ public static long getTimeDurationHelper(String name, String vStr, vStr = vStr.trim(); vStr = vStr.toLowerCase(); ParsedTimeDuration vUnit = ParsedTimeDuration.unitFor(vStr); - if (null == vUnit) { + if (vUnit == null) { LOG.warn("No unit for " + name + "(" + vStr + ") assuming " + unit); vUnit = ParsedTimeDuration.unitFor(unit); + if(vUnit == null){ + throw new NullPointerException("Specified vUnit is null"); + } } else { vStr = vStr.substring(0, vStr.lastIndexOf(vUnit.suffix())); } long raw = Long.parseLong(vStr); - long converted = unit.convert(raw, Objects.requireNonNull(vUnit).unit()); + long converted = unit.convert(raw, vUnit.unit()); if (vUnit.unit().convert(converted, unit) < raw) { LOG.warn("Possible loss of precision converting " + vStr + vUnit.suffix() + " to " + unit + " for " + name); From a750363bb884e58f9d5bce79820af0186b4f4f25 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Tue, 10 Aug 2021 14:01:13 +0800 Subject: [PATCH 7/8] code style --- .../java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java index 76c8e4e780b9..e76bcdab690d 100644 --- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java +++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java @@ -47,11 +47,11 @@ public static long getTimeDurationHelper(String name, String vStr, vStr = vStr.trim(); vStr = vStr.toLowerCase(); ParsedTimeDuration vUnit = ParsedTimeDuration.unitFor(vStr); - if (vUnit == null) { + if (null == vUnit) { LOG.warn("No unit for " + name + "(" + vStr + ") assuming " + unit); vUnit = ParsedTimeDuration.unitFor(unit); - if(vUnit == null){ - throw new NullPointerException("Specified vUnit is null"); + if(null == vUnit){ + throw new NullPointerException("Unexpected unit" + unit); } } else { vStr = vStr.substring(0, vStr.lastIndexOf(vUnit.suffix())); From a2da4898ecb9f11faf0ad7b5cf6c94132ee828c4 Mon Sep 17 00:00:00 2001 From: sky76093016 <6ssssssky6@gmail.com> Date: Tue, 10 Aug 2021 18:05:30 +0800 Subject: [PATCH 8/8] fix code style and use IllegalArgumentException --- .../java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java index e76bcdab690d..fa2b7328b7dd 100644 --- a/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java +++ b/hadoop-hdds/config/src/main/java/org/apache/hadoop/hdds/conf/TimeDurationUtil.java @@ -50,8 +50,8 @@ public static long getTimeDurationHelper(String name, String vStr, if (null == vUnit) { LOG.warn("No unit for " + name + "(" + vStr + ") assuming " + unit); vUnit = ParsedTimeDuration.unitFor(unit); - if(null == vUnit){ - throw new NullPointerException("Unexpected unit" + unit); + if (null == vUnit) { + throw new IllegalArgumentException("Unexpected unit: " + unit); } } else { vStr = vStr.substring(0, vStr.lastIndexOf(vUnit.suffix()));