From 4ef032ec584eb238b703e31f71d7075007e93282 Mon Sep 17 00:00:00 2001 From: WeichenXu Date: Sun, 28 Aug 2016 00:10:50 -0700 Subject: [PATCH] print error while existing registedInterpreter with the same key but different settings --- .../org/apache/zeppelin/interpreter/Interpreter.java | 6 +++++- .../zeppelin/interpreter/InterpreterProperty.java | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java index 07f9cbabcad..42caafdfc61 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java @@ -345,10 +345,14 @@ public static void register(String name, String group, String className, } public static void register(RegisteredInterpreter registeredInterpreter) { - // TODO(jongyoul): Error should occur when two same interpreter key with different settings String interpreterKey = registeredInterpreter.getInterpreterKey(); if (!registeredInterpreters.containsKey(interpreterKey)) { registeredInterpreters.put(interpreterKey, registeredInterpreter); + } else { + RegisteredInterpreter existInterpreter = registeredInterpreters.get(interpreterKey); + if (!existInterpreter.getProperties().equals(registeredInterpreter.getProperties())) { + logger.error("exist registeredInterpreter with the same key but has different settings."); + } } } diff --git a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterProperty.java b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterProperty.java index 488f2a1fa93..aa0dc94672b 100644 --- a/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterProperty.java +++ b/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/InterpreterProperty.java @@ -70,6 +70,14 @@ public void setDescription(String description) { this.description = description; } + public int hashCode() { + return this.toString().hashCode(); + } + + public boolean equals(Object o) { + return this.toString().equals(o.toString()); + } + public String getValue() { //TODO(jongyoul): Remove SparkInterpreter's getSystemDefault method if (envName != null && !envName.isEmpty()) { @@ -90,7 +98,7 @@ public String getValue() { @Override public String toString() { - return String.format("{envName=%s, propertyName=%s, defaultValue=%s, description=%20s", envName, - propertyName, defaultValue, description); + return String.format("{envName=%s, propertyName=%s, defaultValue=%s, description=%20s}", + envName, propertyName, defaultValue, description); } }