This is an automated email from the ASF dual-hosted git repository. hanahmily pushed a commit to branch feat/trace-response in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
commit 34e72b61dde61e8dac6908003f563a49a61259b3 Author: Gao Hongtao <hanahm...@gmail.com> AuthorDate: Tue Sep 9 20:19:03 2025 +0800 Fix the failure of parsing the status code Signed-off-by: Gao Hongtao <hanahm...@gmail.com> --- .../v1/client/TraceBulkWriteProcessor.java | 36 ++++++++++++---------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java index 3d46e08..96fdc4d 100644 --- a/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java +++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/TraceBulkWriteProcessor.java @@ -25,9 +25,11 @@ import java.util.List; import lombok.extern.slf4j.Slf4j; import org.apache.skywalking.banyandb.common.v1.BanyandbCommon; +import org.apache.skywalking.banyandb.model.v1.BanyandbModel; import org.apache.skywalking.banyandb.trace.v1.TraceServiceGrpc; import org.apache.skywalking.banyandb.trace.v1.BanyandbTrace; import org.apache.skywalking.banyandb.v1.client.grpc.exception.BanyanDBException; +import org.apache.skywalking.banyandb.v1.client.util.StatusUtil; import javax.annotation.concurrent.ThreadSafe; @@ -78,23 +80,25 @@ public class TraceBulkWriteProcessor extends AbstractBulkWriteProcessor<Banyandb @Override public void onNext(BanyandbTrace.WriteResponse writeResponse) { - String status = writeResponse.getStatus(); - if ("succeed".equals(status)) { - // Success case - do nothing - } else if ("expired_schema".equals(status)) { - BanyandbCommon.Metadata metadata = writeResponse.getMetadata(); - String schemaKey = metadata.getGroup() + "." + metadata.getName(); - if (!schemaExpired.contains(schemaKey)) { - log.warn("The trace schema {} is expired, trying update the schema...", schemaKey); - try { - client.updateTraceMetadataCacheFromServer(metadata.getGroup(), metadata.getName()); - schemaExpired.add(schemaKey); - } catch (BanyanDBException e) { - log.error(e.getMessage(), e); + BanyandbModel.Status status = StatusUtil.convertStringToStatus(writeResponse.getStatus()); + switch (status) { + case STATUS_SUCCEED: + break; + case STATUS_EXPIRED_SCHEMA: + BanyandbCommon.Metadata metadata = writeResponse.getMetadata(); + String schemaKey = metadata.getGroup() + "." + metadata.getName(); + if (!schemaExpired.contains(schemaKey)) { + log.warn("The trace schema {} is expired, trying update the schema...", schemaKey); + try { + client.updateTraceMetadataCacheFromServer(metadata.getGroup(), metadata.getName()); + schemaExpired.add(schemaKey); + } catch (BanyanDBException e) { + log.error(e.getMessage(), e); + } } - } - } else { - log.warn("Write trace failed with status: {}", status); + break; + default: + log.warn("Write trace failed with status: {}", status); } }