You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@twill.apache.org by ch...@apache.org on 2017/08/07 20:52:31 UTC
[6/6] twill git commit: Updated with exception handling.
Updated with exception handling.
Project: http://git-wip-us.apache.org/repos/asf/twill/repo
Commit: http://git-wip-us.apache.org/repos/asf/twill/commit/2cd848b3
Tree: http://git-wip-us.apache.org/repos/asf/twill/tree/2cd848b3
Diff: http://git-wip-us.apache.org/repos/asf/twill/diff/2cd848b3
Branch: refs/heads/feature/TWILL-241-per-runnable-opts
Commit: 2cd848b348fb09fdcd156676f28204a684745569
Parents: 8a42f8c
Author: Terence Yim <ch...@apache.org>
Authored: Mon Aug 7 13:52:16 2017 -0700
Committer: Terence Yim <ch...@apache.org>
Committed: Mon Aug 7 13:52:16 2017 -0700
----------------------------------------------------------------------
.../internal/TwillRuntimeSpecification.java | 48 ++++++++++++++------
1 file changed, 33 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/twill/blob/2cd848b3/twill-core/src/main/java/org/apache/twill/internal/TwillRuntimeSpecification.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/TwillRuntimeSpecification.java b/twill-core/src/main/java/org/apache/twill/internal/TwillRuntimeSpecification.java
index 2974870..6361bd6 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/TwillRuntimeSpecification.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/TwillRuntimeSpecification.java
@@ -105,15 +105,17 @@ public class TwillRuntimeSpecification {
* Returns the reserved non-heap memory size in MB for the application master.
*/
public int getAMReservedMemory() {
- return getReservedMemory(config, Configs.Defaults.YARN_AM_RESERVED_MEMORY_MB);
+ return getReservedMemory(config, Configs.Keys.YARN_AM_RESERVED_MEMORY_MB,
+ Configs.Defaults.YARN_AM_RESERVED_MEMORY_MB);
}
/**
* Returns the reserved non-heap memory size in MB for the given runnable.
*/
public int getReservedMemory(String runnableName) {
- int memory = getReservedMemory(runnableConfigs.get(runnableName), -1);
- return memory < 0 ? getReservedMemory(config, Configs.Defaults.JAVA_RESERVED_MEMORY_MB) : memory;
+ int memory = getReservedMemory(runnableConfigs.get(runnableName), Configs.Keys.JAVA_RESERVED_MEMORY_MB, -1);
+ return memory < 0 ? getReservedMemory(config, Configs.Keys.JAVA_RESERVED_MEMORY_MB,
+ Configs.Defaults.JAVA_RESERVED_MEMORY_MB) : memory;
}
/**
@@ -169,26 +171,42 @@ public class TwillRuntimeSpecification {
* Returns the minimum heap ratio ({@link Configs.Keys#HEAP_RESERVED_MIN_RATIO}) based on the given configuration.
*/
private double getMinHeapRatio(@Nullable Map<String, String> config, double defaultValue) {
- if (config == null) {
+ if (config == null || !config.containsKey(Configs.Keys.HEAP_RESERVED_MIN_RATIO)) {
return defaultValue;
}
- double ratio = config.containsKey(Configs.Keys.HEAP_RESERVED_MIN_RATIO) ?
- Double.parseDouble(config.get(Configs.Keys.HEAP_RESERVED_MIN_RATIO)) : defaultValue;
- // Ratio can't be <= 0
- return ratio <= 0d ? defaultValue : ratio;
+ try {
+ double ratio = Double.parseDouble(config.get(Configs.Keys.HEAP_RESERVED_MIN_RATIO));
+ if (ratio <= 0d) {
+ throw new IllegalArgumentException("Minimum heap ratio configured with key '" +
+ Configs.Keys.HEAP_RESERVED_MIN_RATIO +
+ "' must be > 0. It is configured to " + ratio);
+ }
+ return ratio;
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("Failed to parse the minimum heap ratio from configuration with key '" +
+ Configs.Keys.HEAP_RESERVED_MIN_RATIO + "'", e);
+ }
}
/**
- * Returns the reserved memory size ({@link Configs.Keys#HEAP_RESERVED_MIN_RATIO}) based on the given configuration.
+ * Returns the reserved memory size based on the given configuration.
*/
- private int getReservedMemory(@Nullable Map<String, String> config, int defaultValue) {
- if (config == null) {
+ private int getReservedMemory(@Nullable Map<String, String> config, String key, int defaultValue) {
+ if (config == null || !config.containsKey(key)) {
return defaultValue;
}
- int memory = config.containsKey(Configs.Keys.JAVA_RESERVED_MEMORY_MB) ?
- Integer.parseInt(config.get(Configs.Keys.JAVA_RESERVED_MEMORY_MB)) : defaultValue;
- // memory size can't be -ve
- return memory < 0 ? defaultValue : memory;
+
+ try {
+ int memory = Integer.parseInt(config.get(key));
+ if (memory < 0) {
+ throw new IllegalArgumentException("Reserved memory size configured with key '" + key +
+ "' must be >= 0. It is configured to " + memory);
+ }
+ return memory;
+ } catch (NumberFormatException e) {
+ throw new IllegalArgumentException("Failed to parse the reserved memory size from configuration with key '" +
+ key + "'", e);
+ }
}
}