You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/11/21 07:28:03 UTC

[skywalking-banyandb-java-client] branch main updated: Fix wrong offset if tag is null (#25)

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

wusheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git


The following commit(s) were added to refs/heads/main by this push:
     new f859eda  Fix wrong offset if tag is null (#25)
f859eda is described below

commit f859eda9fd830e950e54313ecdfe09cdf89cb5ea
Author: Jiajing LU <lu...@gmail.com>
AuthorDate: Mon Nov 21 15:27:58 2022 +0800

    Fix wrong offset if tag is null (#25)
---
 .../java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java  | 5 ++---
 .../java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java   | 5 ++---
 .../skywalking/banyandb/v1/client/BanyanDBClientStreamWriteTest.java | 4 ++--
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
index 5304dad..0241926 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/MeasureWrite.java
@@ -70,14 +70,13 @@ public class MeasureWrite extends AbstractWrite<BanyandbMeasure.WriteRequest> {
         // memorize the last offset for the last tag family
         int lastFamilyOffset = 0;
         for (final int tagsPerFamily : this.entityMetadata.getTagFamilyCapacity()) {
-            final BanyandbModel.TagFamilyForWrite.Builder b = BanyandbModel.TagFamilyForWrite.newBuilder();
             boolean firstNonNullTagFound = false;
             Deque<BanyandbModel.TagValue> tags = new LinkedList<>();
             for (int j = tagsPerFamily - 1; j >= 0; j--) {
                 Object obj = this.tags[lastFamilyOffset + j];
                 if (obj == null) {
                     if (firstNonNullTagFound) {
-                        b.addTags(TagAndValue.nullTagValue().serialize());
+                        tags.addFirst(TagAndValue.nullTagValue().serialize());
                     }
                     continue;
                 }
@@ -85,7 +84,7 @@ public class MeasureWrite extends AbstractWrite<BanyandbMeasure.WriteRequest> {
                 tags.addFirst(((Serializable<BanyandbModel.TagValue>) obj).serialize());
             }
             lastFamilyOffset += tagsPerFamily;
-            datapointValueBuilder.addTagFamilies(b.addAllTags(tags).build());
+            datapointValueBuilder.addTagFamilies(BanyandbModel.TagFamilyForWrite.newBuilder().addAllTags(tags).build());
         }
 
         for (int i = 0; i < this.entityMetadata.getTotalFields(); i++) {
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
index b055d17..b2f85c2 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/StreamWrite.java
@@ -66,14 +66,13 @@ public class StreamWrite extends AbstractWrite<BanyandbStream.WriteRequest> {
         // memorize the last offset for the last tag family
         int lastFamilyOffset = 0;
         for (final int tagsPerFamily : this.entityMetadata.getTagFamilyCapacity()) {
-            final BanyandbModel.TagFamilyForWrite.Builder b = BanyandbModel.TagFamilyForWrite.newBuilder();
             boolean firstNonNullTagFound = false;
             Deque<BanyandbModel.TagValue> tags = new LinkedList<>();
             for (int j = tagsPerFamily - 1; j >= 0; j--) {
                 Object obj = this.tags[lastFamilyOffset + j];
                 if (obj == null) {
                     if (firstNonNullTagFound) {
-                        b.addTags(TagAndValue.nullTagValue().serialize());
+                        tags.addFirst(TagAndValue.nullTagValue().serialize());
                     }
                     continue;
                 }
@@ -81,7 +80,7 @@ public class StreamWrite extends AbstractWrite<BanyandbStream.WriteRequest> {
                 tags.addFirst(((Serializable<BanyandbModel.TagValue>) obj).serialize());
             }
             lastFamilyOffset += tagsPerFamily;
-            elemValBuilder.addTagFamilies(b.addAllTags(tags).build());
+            elemValBuilder.addTagFamilies(BanyandbModel.TagFamilyForWrite.newBuilder().addAllTags(tags).build());
         }
         builder.setElement(elemValBuilder);
         return builder.build();
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientStreamWriteTest.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientStreamWriteTest.java
index 21ac83a..3d80b40 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientStreamWriteTest.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientStreamWriteTest.java
@@ -154,7 +154,6 @@ public class BanyanDBClientStreamWriteTest extends AbstractBanyanDBClientTest {
         String queue = "queue_2";
         String httpStatusCode = "200";
         String dbType = "SQL";
-        String dbInstance = "127.0.0.1:3306";
 
         StreamWrite streamWrite = new StreamWrite("default", "sw", segmentId, now.toEpochMilli())
                 .tag("data_binary", Value.binaryTagValue(byteData))
@@ -167,7 +166,7 @@ public class BanyanDBClientStreamWriteTest extends AbstractBanyanDBClientTest {
                 .tag("http.method", Value.stringTagValue(null)) // 6
                 .tag("status_code", Value.stringTagValue(httpStatusCode)) // 7
                 .tag("db.type", Value.stringTagValue(dbType)) // 8
-                .tag("db.instance", Value.stringTagValue(dbInstance)) // 9
+                .tag("db.instance", null) // 9
                 .tag("mq.broker", Value.stringTagValue(broker)) // 10
                 .tag("mq.topic", Value.stringTagValue(topic)) // 11
                 .tag("mq.queue", Value.stringTagValue(queue)); // 12
@@ -182,6 +181,7 @@ public class BanyanDBClientStreamWriteTest extends AbstractBanyanDBClientTest {
             Assert.assertEquals(traceId, request.getElement().getTagFamilies(1).getTags(0).getStr().getValue());
             Assert.assertEquals(latency, request.getElement().getTagFamilies(1).getTags(5).getInt().getValue());
             Assert.assertEquals(request.getElement().getTagFamilies(1).getTags(7).getNull(), NullValue.NULL_VALUE);
+            Assert.assertEquals(request.getElement().getTagFamilies(1).getTags(9).getNull(), NullValue.NULL_VALUE);
             Assert.assertEquals(queue, request.getElement().getTagFamilies(1).getTags(12).getStr().getValue());
         } else {
             Assert.fail();