You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2023/09/21 12:34:15 UTC

[servicecomb-java-chassis] branch 2.8.x updated (a5b222d01 -> 2fb4b6ecc)

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

liubao pushed a change to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


    from a5b222d01 [SCB-2811] support global route rule for gray (#3948) (#3949)
     new b634c4a9b [#3893]fix client decode error message
     new 2fb4b6ecc [#3893]fix host name too long and unit test error

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../task/MicroserviceInstanceRegisterTask.java     |  7 ++++--
 .../rest/client/http/DefaultHttpClientFilter.java  | 25 +++++++++-------------
 .../client/http/TestDefaultHttpClientFilter.java   | 12 ++++++-----
 3 files changed, 22 insertions(+), 22 deletions(-)


[servicecomb-java-chassis] 02/02: [#3893]fix host name too long and unit test error

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 2fb4b6ecc7514812d112784f81f5e7b9404926f7
Author: liubao <bi...@qq.com>
AuthorDate: Thu Sep 21 20:07:59 2023 +0800

    [#3893]fix host name too long and unit test error
---
 .../task/MicroserviceInstanceRegisterTask.java               |  7 +++++--
 .../transport/rest/client/http/DefaultHttpClientFilter.java  |  4 ++--
 .../rest/client/http/TestDefaultHttpClientFilter.java        | 12 +++++++-----
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
index 135d48c4a..119c7aa02 100644
--- a/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
+++ b/service-registry/registry-service-center/src/main/java/org/apache/servicecomb/serviceregistry/task/MicroserviceInstanceRegisterTask.java
@@ -18,9 +18,9 @@ package org.apache.servicecomb.serviceregistry.task;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.servicecomb.registry.RegistrationManager;
-import org.apache.servicecomb.serviceregistry.adapter.EnvAdapterManager;
 import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.registry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.serviceregistry.adapter.EnvAdapterManager;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.config.ServiceRegistryConfig;
 import org.slf4j.Logger;
@@ -58,12 +58,15 @@ public class MicroserviceInstanceRegisterTask extends AbstractRegisterTask {
   @Override
   protected boolean doRegister() {
     LOGGER.info("running microservice instance register task.");
-    String hostName = "";
+    String hostName;
     if (serviceRegistryConfig.isPreferIpAddress()) {
       hostName = RegistrationManager.getPublishAddress();
     } else {
       hostName = RegistrationManager.getPublishHostName();
     }
+    if (hostName.length() > 64) {
+      hostName = hostName.substring(0, 64);
+    }
     microserviceInstance.setHostName(hostName);
     microserviceInstance.getHealthCheck().setInterval(serviceRegistryConfig.getHeartbeatInterval());
     microserviceInstance.getHealthCheck().setTimes(serviceRegistryConfig.getResendHeartBeatTimes());
diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
index 91b98a48a..1905af342 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
@@ -111,8 +111,8 @@ public class DefaultHttpClientFilter implements HttpClientFilter {
     } catch (Exception e) {
       LOGGER.error("failed to decode response body.", e);
       String msg =
-          String.format("Failed to decode response body. %s",
-              e.getMessage());
+          String.format("Failed to decode response body. Operation %s.",
+              invocation.getMicroserviceQualifiedName());
       if (HttpStatus.isSuccess(responseEx.getStatus())) {
         return Response.createConsumerFail(
             new InvocationException(400, responseEx.getStatusType().getReasonPhrase(),
diff --git a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
index 2e1c18e3b..d93de48b4 100644
--- a/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
+++ b/transports/transport-rest/transport-rest-client/src/test/java/org/apache/servicecomb/transport/rest/client/http/TestDefaultHttpClientFilter.java
@@ -38,6 +38,7 @@ import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
 
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.type.SimpleType;
@@ -49,7 +50,6 @@ import mockit.Expectations;
 import mockit.Mock;
 import mockit.MockUp;
 import mockit.Mocked;
-import org.junit.jupiter.api.Assertions;
 
 public class TestDefaultHttpClientFilter {
   private final DefaultHttpClientFilter filter = new DefaultHttpClientFilter();
@@ -155,7 +155,8 @@ public class TestDefaultHttpClientFilter {
     Assertions.assertEquals(InvocationException.class, response.<InvocationException>getResult().getClass());
     InvocationException invocationException = response.getResult();
     Assertions.assertEquals(
-        "InvocationException: code=400;msg=CommonExceptionData [message=method null, path null, statusCode 400, reasonPhrase null, response content-type null is not supported]",
+        "InvocationException: code=400;msg=CommonExceptionData "
+            + "[message=Failed to decode response body. Operation null.]",
         invocationException.getMessage());
     Assertions.assertEquals(
         "Unrecognized token 'abc': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n"
@@ -164,7 +165,7 @@ public class TestDefaultHttpClientFilter {
     Assertions.assertEquals(CommonExceptionData.class, invocationException.getErrorData().getClass());
     CommonExceptionData commonExceptionData = (CommonExceptionData) invocationException.getErrorData();
     Assertions.assertEquals(
-        "method null, path null, statusCode 400, reasonPhrase null, response content-type null is not supported",
+        "Failed to decode response body. Operation null.",
         commonExceptionData.getMessage());
   }
 
@@ -202,7 +203,8 @@ public class TestDefaultHttpClientFilter {
     Assertions.assertEquals(InvocationException.class, response.<InvocationException>getResult().getClass());
     InvocationException invocationException = response.getResult();
     Assertions.assertEquals(
-        "InvocationException: code=400;msg=CommonExceptionData [message=method null, path null, statusCode 200, reasonPhrase null, response content-type null is not supported]",
+        "InvocationException: code=400;msg=CommonExceptionData "
+            + "[message=Failed to decode response body. Operation null.]",
         invocationException.getMessage());
     Assertions.assertEquals(
         "Unrecognized token 'abc': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')\n"
@@ -211,7 +213,7 @@ public class TestDefaultHttpClientFilter {
     Assertions.assertEquals(CommonExceptionData.class, invocationException.getErrorData().getClass());
     CommonExceptionData commonExceptionData = (CommonExceptionData) invocationException.getErrorData();
     Assertions.assertEquals(
-        "method null, path null, statusCode 200, reasonPhrase null, response content-type null is not supported",
+        "Failed to decode response body. Operation null.",
         commonExceptionData.getMessage());
   }
 


[servicecomb-java-chassis] 01/02: [#3893]fix client decode error message

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit b634c4a9b612c7adbe66510d8637c3de9e3199a8
Author: liubao <bi...@qq.com>
AuthorDate: Thu Sep 21 19:41:55 2023 +0800

    [#3893]fix client decode error message
---
 .../rest/client/http/DefaultHttpClientFilter.java  | 25 +++++++++-------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
index 9e9c7d7ce..91b98a48a 100644
--- a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
+++ b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/DefaultHttpClientFilter.java
@@ -90,14 +90,13 @@ public class DefaultHttpClientFilter implements HttpClientFilter {
     if (produceProcessor == null) {
       // This happens outside the runtime such as Servlet filter response. Here we give a default json parser to it
       // and keep user data not get lose.
-      String msg =
-          String.format("method %s, path %s, statusCode %d, reasonPhrase %s, response content-type %s is not supported",
-              swaggerRestOperation.getHttpMethod(),
-              swaggerRestOperation.getAbsolutePath(),
-              responseEx.getStatus(),
-              responseEx.getStatusType().getReasonPhrase(),
-              responseEx.getHeader(HttpHeaders.CONTENT_TYPE));
-      LOGGER.warn(msg);
+      LOGGER.warn("Response content-type {} is not supported. Method {}, path {}, statusCode {}, reasonPhrase {}.",
+          responseEx.getHeader(HttpHeaders.CONTENT_TYPE),
+          swaggerRestOperation.getHttpMethod(),
+          swaggerRestOperation.getAbsolutePath(),
+          responseEx.getStatus(),
+          responseEx.getStatusType().getReasonPhrase()
+      );
       produceProcessor = ProduceProcessorManager.INSTANCE.findDefaultProcessor();
     }
 
@@ -110,14 +109,10 @@ public class DefaultHttpClientFilter implements HttpClientFilter {
       }
       return response;
     } catch (Exception e) {
-      LOGGER.error("failed to decode response body, exception is [{}]", e.getMessage());
+      LOGGER.error("failed to decode response body.", e);
       String msg =
-          String.format("method %s, path %s, statusCode %d, reasonPhrase %s, response content-type %s is not supported",
-              swaggerRestOperation.getHttpMethod(),
-              swaggerRestOperation.getAbsolutePath(),
-              responseEx.getStatus(),
-              responseEx.getStatusType().getReasonPhrase(),
-              responseEx.getHeader(HttpHeaders.CONTENT_TYPE));
+          String.format("Failed to decode response body. %s",
+              e.getMessage());
       if (HttpStatus.isSuccess(responseEx.getStatus())) {
         return Response.createConsumerFail(
             new InvocationException(400, responseEx.getStatusType().getReasonPhrase(),