[ 
https://issues.apache.org/jira/browse/SCB-931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16628620#comment-16628620
 ] 

ASF GitHub Bot commented on SCB-931:
------------------------------------

liubao68 closed pull request #917: [SCB-931]upgrade vert.x to 3.5.3 to fix some 
know issues
URL: https://github.com/apache/incubator-servicecomb-java-chassis/pull/917
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappClient.java
 
b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappClient.java
index 938895322..9df1546f7 100644
--- 
a/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappClient.java
+++ 
b/demo/demo-crossapp/crossapp-client/src/main/java/org/apache/servicecomb/demo/crossapp/CrossappClient.java
@@ -75,7 +75,7 @@ private static void testCorsHandler() {
         .exchange("http://127.0.0.1:8080/helloworld/hello";, 
HttpMethod.OPTIONS, requestEntity,
             String.class);
 
-    TestMgr.check("204", responseEntity.getStatusCodeValue());
+    TestMgr.check("200", responseEntity.getStatusCodeValue());
     TreeSet<String> sortedSet = new 
TreeSet<>(responseEntity.getHeaders().get("Access-Control-Allow-Methods"));
     TestMgr.check("[DELETE,POST,GET,PUT]", sortedSet);
     sortedSet = new 
TreeSet<>(responseEntity.getHeaders().get("Access-Control-Allow-Headers"));
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
index bd6642b28..ddc470989 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/VertxTLSBuilder.java
@@ -18,6 +18,9 @@
 package org.apache.servicecomb.foundation.vertx;
 
 import java.io.File;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLManager;
@@ -135,9 +138,10 @@ private static TCPSSLOptions buildTCPSSLOptions(SSLOption 
sslOption, SSLCustom s
     } else {
       LOGGER.warn("trustStore [" + fullTrustStore + "] file not exist, please 
check!");
     }
-    for (String protocol : sslOption.getProtocols().split(",")) {
-      tcpClientOptions.addEnabledSecureTransportProtocol(protocol);
-    }
+
+    tcpClientOptions
+        .setEnabledSecureTransportProtocols(new 
HashSet<String>(Arrays.asList(sslOption.getProtocols().split(","))));
+
     for (String cipher : SSLManager.getEnalbedCiphers(sslOption.getCiphers())) 
{
       tcpClientOptions.addEnabledCipherSuite(cipher);
     }
diff --git 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
index 7fc3f24f4..be0ff460e 100644
--- 
a/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
+++ 
b/foundations/foundation-vertx/src/main/java/org/apache/servicecomb/foundation/vertx/server/TcpServer.java
@@ -22,6 +22,7 @@
 
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
 import org.apache.servicecomb.foundation.ssl.SSLOptionFactory;
@@ -30,6 +31,8 @@
 import org.apache.servicecomb.foundation.vertx.ConnectionEvent;
 import org.apache.servicecomb.foundation.vertx.TransportType;
 import org.apache.servicecomb.foundation.vertx.VertxTLSBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.netflix.config.DynamicPropertyFactory;
 
@@ -38,6 +41,8 @@
 import io.vertx.core.net.NetServerOptions;
 
 public class TcpServer {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(TcpServer.class);
+
   private URIEndpointObject endpointObject;
 
   private final AtomicInteger connectedCounter;
@@ -81,7 +86,9 @@ public void init(Vertx vertx, String sslKey, 
AsyncResultCallback<InetSocketAddre
       EventManager.post(new ClientEvent(netSocket.remoteAddress().toString(),
           ConnectionEvent.Connected, TransportType.Highway, connectedCount));
     });
-
+    netServer.exceptionHandler(e -> {
+      LOGGER.error("Unexpected error in server.{}", 
ExceptionUtils.getExceptionMessageWithoutTrace(e));
+    });
     InetSocketAddress socketAddress = endpointObject.getSocketAddress();
     netServer.listen(socketAddress.getPort(), socketAddress.getHostString(), 
ar -> {
       if (ar.succeeded()) {
diff --git 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestRestServerConfigEdge.java
 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestRestServerConfigEdge.java
index d18f9fcf7..1f0f30cd0 100644
--- 
a/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestRestServerConfigEdge.java
+++ 
b/integration-tests/it-consumer/src/main/java/org/apache/servicecomb/it/testcase/TestRestServerConfigEdge.java
@@ -64,9 +64,9 @@ public void testIllegalPathParam() throws IOException {
     }
     urlConnection.disconnect();
 
-    assertEquals(500, responseCode);
-    assertEquals("Internal Server Error", responseMessage);
-    assertEquals("{\"message\":\"unknown error\"}", errorBody);
+    assertEquals(400, responseCode);
+    assertEquals("Bad Request", responseMessage);
+    assertEquals("Bad Request", errorBody);
   }
 
   @Test
diff --git a/java-chassis-dependencies/pom.xml 
b/java-chassis-dependencies/pom.xml
index bfb03c9ca..58fa021c5 100644
--- a/java-chassis-dependencies/pom.xml
+++ b/java-chassis-dependencies/pom.xml
@@ -32,7 +32,7 @@
 
   <properties>
     <jackson.version>2.9.6</jackson.version>
-    <vertx.version>3.5.0</vertx.version>
+    <vertx.version>3.5.3</vertx.version>
     <tec.zkclient.version>0.8</tec.zkclient.version>
     <spring.version>4.3.16.RELEASE</spring.version>
     <slf4j.version>1.7.7</slf4j.version>
diff --git a/java-chassis-distribution/src/release/LICENSE 
b/java-chassis-distribution/src/release/LICENSE
index 4abe814e5..035e4b0dc 100644
--- a/java-chassis-distribution/src/release/LICENSE
+++ b/java-chassis-distribution/src/release/LICENSE
@@ -450,10 +450,10 @@ tomcat-embed-core (http://tomcat.apache.org/) 
org.apache.tomcat.embed:tomcat-emb
 tomcat-embed-el (http://tomcat.apache.org/) 
org.apache.tomcat.embed:tomcat-embed-el:jar:8.0.33
 tomcat-embed-logging-juli (http://tomcat.apache.org/) 
org.apache.tomcat.embed:tomcat-embed-logging-juli:jar:8.0.33
 tomcat-embed-websocket (http://tomcat.apache.org/) 
org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.0.33
-Vert.x Bridge Common 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-bridge-common)
 io.vertx:vertx-bridge-common:jar:3.5.0
-Vert.x Core 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-core) 
io.vertx:vertx-core:jar:3.5.0
-vertx-auth-common 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-auth/vertx-auth-common)
 io.vertx:vertx-auth-common:jar:3.5.0
-vertx-web 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web)
 io.vertx:vertx-web:jar:3.5.0
+Vert.x Bridge Common 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-bridge-common)
 io.vertx:vertx-bridge-common:jar:3.5.3
+Vert.x Core 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-core) 
io.vertx:vertx-core:jar:3.5.3
+vertx-auth-common 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-auth/vertx-auth-common)
 io.vertx:vertx-auth-common:jar:3.5.3
+vertx-web 
(http://nexus.sonatype.org/oss-repository-hosting.html/vertx-parent/vertx-ext/vertx-ext-parent/vertx-web-parent/vertx-web)
 io.vertx:vertx-web:jar:3.5.3
 Woodstox (https://github.com/FasterXML/woodstox) 
com.fasterxml.woodstox:woodstox-core:bundle:5.0.3
 Zipkin Reporter Spring Factory Beans 
(https://github.com/openzipkin/zipkin-reporter-java/zipkin-reporter-spring-beans)
 io.zipkin.reporter2:zipkin-reporter-spring-beans:jar:2.2.2
 Zipkin Reporter: Core 
(https://github.com/openzipkin/zipkin-reporter-java/zipkin-reporter) 
io.zipkin.reporter2:zipkin-reporter:jar:2.5.0
diff --git 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
index a7b422df9..dc0f86b75 100644
--- 
a/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
+++ 
b/transports/transport-rest/transport-rest-client/src/main/java/org/apache/servicecomb/transport/rest/client/http/RestClientInvocation.java
@@ -221,10 +221,13 @@ protected void fail(Throwable e) {
     }
 
     InvocationStageTrace stageTrace = invocation.getInvocationStageTrace();
-    DefaultHttpSocketMetric httpSocketMetric = (DefaultHttpSocketMetric) 
((ConnectionBase) clientRequest.connection())
-        .metric();
-    stageTrace.finishGetConnection(httpSocketMetric.getRequestBeginTime());
-    stageTrace.finishWriteToBuffer(httpSocketMetric.getRequestEndTime());
+    ConnectionBase connection = (ConnectionBase) clientRequest.connection();
+    // connection maybe null when exception happens such as ssl handshake 
failure
+    if (connection != null) {
+      DefaultHttpSocketMetric httpSocketMetric = (DefaultHttpSocketMetric) 
connection.metric();
+      stageTrace.finishGetConnection(httpSocketMetric.getRequestBeginTime());
+      stageTrace.finishWriteToBuffer(httpSocketMetric.getRequestEndTime());
+    }
 
     stageTrace.finishClientFiltersResponse();
     asyncResp.fail(invocation.getInvocationType(), e);
diff --git 
a/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/VertxImplTestUtils.java
 
b/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/VertxImplTestUtils.java
index cb2631fbd..5fb03b151 100644
--- 
a/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/VertxImplTestUtils.java
+++ 
b/transports/transport-rest/transport-rest-client/src/test/java/io/vertx/core/http/impl/VertxImplTestUtils.java
@@ -19,7 +19,7 @@
 import org.mockito.Mockito;
 
 public class VertxImplTestUtils {
-  public static ClientConnection mockClientConnection() {
-    return Mockito.mock(ClientConnection.class);
+  public static Http1xConnectionBase mockClientConnection() {
+    return Mockito.mock(Http1xConnectionBase.class);
   }
 }
diff --git 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
index caeaa1bb3..e93c56167 100644
--- 
a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
+++ 
b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/RestServerVerticle.java
@@ -30,6 +30,7 @@
 import org.apache.servicecomb.core.transport.AbstractTransport;
 import org.apache.servicecomb.foundation.common.event.EventManager;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.foundation.common.utils.ExceptionUtils;
 import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils;
 import org.apache.servicecomb.foundation.ssl.SSLCustom;
 import org.apache.servicecomb.foundation.ssl.SSLOption;
@@ -118,7 +119,9 @@ public void start(Future<Void> startFuture) throws 
Exception {
               ConnectionEvent.Closed, TransportType.Rest, 
connectedCounter.decrementAndGet())));
         }
       });
-
+      httpServer.exceptionHandler(e -> {
+        LOGGER.error("Unexpected error in server.{}", 
ExceptionUtils.getExceptionMessageWithoutTrace(e));
+      });
       startListen(httpServer, startFuture);
     } catch (Throwable e) {
       // vert.x got some states that not print error and execute call back in 
VertexUtils.blockDeploy, we add a log our self.


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> upgrade vert.x to fix some know issues
> --------------------------------------
>
>                 Key: SCB-931
>                 URL: https://issues.apache.org/jira/browse/SCB-931
>             Project: Apache ServiceComb
>          Issue Type: Improvement
>          Components: Java-Chassis
>            Reporter: liubao
>            Assignee: liubao
>            Priority: Major
>
> Know issues:
>  # excpeptionHandler not property executed.  
> [https://github.com/eclipse-vertx/vert.x/issues/2368]
>  
>  # route handler concurrent problems.   
> [https://github.com/vert-x3/vertx-web/pull/739]
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to