From 3f8ce99c505df692058a80631af42a45a9bd9e1c Mon Sep 17 00:00:00 2001
From: Paulo Pinheiro <paulovictor.pinheiro@gmail.com>
Date: Wed, 25 Sep 2019 23:14:39 +0200
Subject: [PATCH] [FlexBuffers][Java] Add override Key::toString (#5533)

---
 java/com/google/flatbuffers/FlexBuffers.java | 8 ++++++--
 tests/JavaTest.java                          | 1 +
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/java/com/google/flatbuffers/FlexBuffers.java b/java/com/google/flatbuffers/FlexBuffers.java
index 3a5c6558..7f71e050 100644
--- a/java/com/google/flatbuffers/FlexBuffers.java
+++ b/java/com/google/flatbuffers/FlexBuffers.java
@@ -740,6 +740,11 @@ public class FlexBuffers {
          */
         @Override
         public StringBuilder toString(StringBuilder sb) {
+            return sb.append(toString());
+        }
+
+        @Override
+        public String toString() {
             int size;
             for (int i = end; ; i++) {
                 if (bb.get(i) == 0) {
@@ -747,8 +752,7 @@ public class FlexBuffers {
                     break;
                 }
             }
-            sb.append(Utf8.getDefault().decodeUtf8(bb, end, size));
-            return sb;
+            return Utf8.getDefault().decodeUtf8(bb, end, size);
         }
 
         int compareTo(byte[] other) {
diff --git a/tests/JavaTest.java b/tests/JavaTest.java
index 2a1e2157..b24601b8 100644
--- a/tests/JavaTest.java
+++ b/tests/JavaTest.java
@@ -683,6 +683,7 @@ class JavaTest {
         // mymap vector
         FlexBuffers.Map mymap = m.get("mymap").asMap();
         TestEq(mymap.keys().get(0), m.keys().get(0)); // These should be equal by pointer equality, since key and value are shared.
+        TestEq(mymap.keys().get(0).toString(), "bar");
         TestEq(mymap.values().get(0).asString(), vec.get(1).asString());
         TestEq(mymap.get("int").asInt(), -120);
         TestEq((float)mymap.get("float").asFloat(), -123.0f);
-- 
GitLab