You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by lm...@apache.org on 2020/04/19 17:46:31 UTC

[knox] branch master updated: KNOX-2345 - KnoxShellTable must handle NULL cols

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

lmccay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 03cd1f9  KNOX-2345 - KnoxShellTable must handle NULL cols
03cd1f9 is described below

commit 03cd1f931cb3a701ba825c78026279cc9247abb6
Author: lmccay <lm...@apache.org>
AuthorDate: Sun Apr 19 13:46:08 2020 -0400

    KNOX-2345 - KnoxShellTable must handle NULL cols
---
 .../knox/gateway/shell/table/KnoxShellTableRenderer.java     |  7 ++++++-
 .../apache/knox/gateway/shell/table/KnoxShellTableTest.java  | 12 ++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRenderer.java b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRenderer.java
index 38f5bd2..ff5b398 100644
--- a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRenderer.java
+++ b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableRenderer.java
@@ -166,7 +166,12 @@ class KnoxShellTableRenderer {
     // cell value length
     for (List<Comparable<? extends Object>> row : tableToRender.rows) {
       for (int i = 0; i < row.size(); i++) {
-        cellValue = ensureEvenLength(row.get(i).toString());
+        Object o = row.get(i);
+        if (o == null) {
+          o = "NULL";
+          row.set(i, (String) o);
+        }
+        cellValue = ensureEvenLength(o.toString());
         if (map.get(i) == null || cellValue.length() > map.get(i)) {
           map.put(i, cellValue.length());
         }
diff --git a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
index 6831e34..e44e6a1 100644
--- a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
+++ b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
@@ -115,6 +115,18 @@ public class KnoxShellTableTest {
   }
 
   @Test
+  public void testNullCellRendering() {
+    KnoxShellTable table = new KnoxShellTable();
+
+    table.header("Column A").header("Column B").header("Column C");
+
+    table.row().value(null).value("456").value("344444444");
+    table.row().value("789").value("012").value("844444444");
+
+    table.toString();
+  }
+
+  @Test
   public void testTableSelect() {
     String expectedResult = "+------------+------------+--------------+\n"
         + "|  Column A  |  Column B  |   Column C   |\n" + "+------------+------------+--------------+\n"