You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2019/01/25 04:12:30 UTC

[incubator-pinot] branch master updated: Fix a bug in PinotSegmentRestletResource.getInstanceToSegmentsMap() (#3746)

This is an automated email from the ASF dual-hosted git repository.

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 335e967  Fix a bug in PinotSegmentRestletResource.getInstanceToSegmentsMap() (#3746)
335e967 is described below

commit 335e967f46302471eaef3b76db1600b41b35fa9b
Author: Xiaotian (Jackie) Jiang <17...@users.noreply.github.com>
AuthorDate: Thu Jan 24 20:12:26 2019 -0800

    Fix a bug in PinotSegmentRestletResource.getInstanceToSegmentsMap() (#3746)
    
    The value for key "segments" should be a serialized map string instead of a json object.
    This is for backward-compatible.
---
 .../controller/api/resources/PinotSegmentRestletResource.java | 11 +++++++++--
 .../java/org/apache/pinot/core/util/trace/TraceContext.java   |  9 ++-------
 .../org/apache/pinot/core/util/trace/TraceContextTest.java    |  5 +----
 3 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java
index ba7a0a3..9ac5f2e 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentRestletResource.java
@@ -468,8 +468,15 @@ public class PinotSegmentRestletResource {
     for (String tableNameWithType : tableNamesWithType) {
       ObjectNode resultForTable = JsonUtils.newObjectNode();
       resultForTable.put(FileUploadPathProvider.TABLE_NAME, tableNameWithType);
-      resultForTable.set("segments",
-          JsonUtils.objectToJsonNode(_pinotHelixResourceManager.getServerToSegmentsMap(tableNameWithType)));
+      try {
+        // NOTE: for backward-compatibility, we put serialized map string as the value
+        resultForTable.put("segments",
+            JsonUtils.objectToString(_pinotHelixResourceManager.getServerToSegmentsMap(tableNameWithType)));
+      } catch (JsonProcessingException e) {
+        throw new ControllerApplicationException(LOGGER,
+            "Caught JSON exception while getting instance to segments map for table: " + tableNameWithType,
+            Response.Status.INTERNAL_SERVER_ERROR, e);
+      }
       result.add(resultForTable);
     }
 
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/util/trace/TraceContext.java b/pinot-core/src/main/java/org/apache/pinot/core/util/trace/TraceContext.java
index 50b6916..fda96a1 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/util/trace/TraceContext.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/util/trace/TraceContext.java
@@ -20,7 +20,6 @@ package org.apache.pinot.core.util.trace;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.annotations.VisibleForTesting;
 import java.util.ArrayList;
 import java.util.List;
@@ -62,9 +61,7 @@ public final class TraceContext {
       }
 
       JsonNode toJson() {
-        ObjectNode jsonLog = JsonUtils.newObjectNode();
-        jsonLog.set(_key, JsonUtils.objectToJsonNode(_value));
-        return jsonLog;
+        return JsonUtils.newObjectNode().set(_key, JsonUtils.objectToJsonNode(_value));
       }
     }
 
@@ -93,9 +90,7 @@ public final class TraceContext {
       for (LogEntry log : _logs) {
         jsonLogs.add(log.toJson());
       }
-      ObjectNode jsonTrace = JsonUtils.newObjectNode();
-      jsonTrace.set(_traceId, jsonLogs);
-      return jsonTrace;
+      return JsonUtils.newObjectNode().set(_traceId, jsonLogs);
     }
   }
 
diff --git a/pinot-core/src/test/java/org/apache/pinot/core/util/trace/TraceContextTest.java b/pinot-core/src/test/java/org/apache/pinot/core/util/trace/TraceContextTest.java
index f9ef136..9f14e51 100644
--- a/pinot-core/src/test/java/org/apache/pinot/core/util/trace/TraceContextTest.java
+++ b/pinot-core/src/test/java/org/apache/pinot/core/util/trace/TraceContextTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.pinot.core.util.trace;
 
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Queue;
@@ -117,8 +116,6 @@ public class TraceContextTest {
   }
 
   private static String getTraceString(String key, Object value) {
-    ObjectNode jsonTrace = JsonUtils.newObjectNode();
-    jsonTrace.set(key, JsonUtils.objectToJsonNode(value));
-    return jsonTrace.toString();
+    return JsonUtils.newObjectNode().set(key, JsonUtils.objectToJsonNode(value)).toString();
   }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org