You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by wu...@apache.org on 2018/10/27 00:22:37 UTC

[incubator-servicecomb-java-chassis] 03/03: [SCB-982] resolve code compile warnings

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

wujimin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 82b177ebcc7052c6d64b1bc0e43a2bec7a51c570
Author: wujimin <wu...@huawei.com>
AuthorDate: Fri Oct 26 15:11:11 2018 +0800

    [SCB-982] resolve code compile warnings
---
 .../io/protostuff/runtime/model/ModelProtobuf.java     |  1 +
 .../servicecomb/common/rest/codec/fix/TestDoSFix.java  |  6 +++---
 .../rest/codec/param/TestQueryProcessorCreator.java    |  5 +++--
 .../servicecomb/demo/pojo/server/SmartCareImpl.java    |  1 +
 .../demo/springmvc/client/TestDownload.java            |  5 ++++-
 .../foundation/common/config/impl/XmlLoader.java       |  2 +-
 .../servicecomb/foundation/common/net/IpPort.java      |  7 +++++++
 .../servicecomb/foundation/common/net/NetUtils.java    |  5 +++--
 .../protobuf/internal/model/ProtobufRoot.java          |  2 +-
 .../foundation/ssl/CertificateUtilTest.java            |  2 ++
 .../foundation/ssl/TrustManagerExtTest.java            | 11 ++++++-----
 .../loadbalance/DefaultRetryExtensionsFactory.java     |  5 ++---
 .../servicecomb/loadbalance/LoadbalanceHandler.java    |  2 +-
 .../loadbalance/TestLoadBalanceHandler2.java           | 18 +++++++++---------
 .../tracing/zipkin/ZipkinTracingHandler.java           |  1 +
 .../it/testcase/TestRestServerConfigEdge.java          |  2 +-
 .../demo/pojo/test/endpoints/SmartCareImpl.java        |  1 +
 java-chassis-dependencies/pom.xml                      |  2 ++
 .../servicecomb/metrics/core/MetricsBootListener.java  |  1 +
 .../starter/transport/RestServletInitializer.java      |  1 +
 .../arguments/TestPojoConsumerEqualSwagger.java        |  2 +-
 .../tracing/zipkin/ZipkinTracingAdviser.java           |  1 +
 .../tracing/zipkin/ZipkinTracingAdviserTest.java       |  6 ++++--
 .../rest/vertx/accesslog/AccessLogGenerator.java       |  4 +++-
 24 files changed, 60 insertions(+), 33 deletions(-)

diff --git a/common/common-protobuf/src/test/java/io/protostuff/runtime/model/ModelProtobuf.java b/common/common-protobuf/src/test/java/io/protostuff/runtime/model/ModelProtobuf.java
index dd8383c..b7a6ff3 100644
--- a/common/common-protobuf/src/test/java/io/protostuff/runtime/model/ModelProtobuf.java
+++ b/common/common-protobuf/src/test/java/io/protostuff/runtime/model/ModelProtobuf.java
@@ -22,6 +22,7 @@ package io.protostuff.runtime.model;
 
 import com.google.protobuf.CodedOutputStream;
 
+@SuppressWarnings({"cast"})
 public final class ModelProtobuf {
   private ModelProtobuf() {
   }
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
index baff897..2692cb3 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/fix/TestDoSFix.java
@@ -100,14 +100,14 @@ public class TestDoSFix {
     fastFail(() -> mapper.readValue(new ByteArrayInputStream(input.getBytes()), cls), eCls);
   }
 
-  void batFastFail(Class cls, Class<?> e1, Class<?> e2) {
+  void batFastFail(Class<?> cls, Class<?> e1, Class<?> e2) {
     fastFail(invalidNum, cls, e1);
     fastFail(invalidStr, cls, e2);
     fastFail(invalidArrNum, cls, e1);
     fastFail(invalidArrStr, cls, e2);
   }
 
-  void batFastFail(Class cls) {
+  void batFastFail(Class<?> cls) {
     batFastFail(cls, JsonParseException.class, InvalidFormatException.class);
   }
 
@@ -195,7 +195,7 @@ public class TestDoSFix {
     });
   }
 
-  void batFastSucc(Class cls, Object expected) {
+  void batFastSucc(Class<?> cls, Object expected) {
     Assert.assertEquals(expected, fastSucc(invalidNum, cls));
     Assert.assertEquals(expected, fastSucc(new ByteArrayInputStream(invalidNum.getBytes()), cls));
 
diff --git a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
index 295b6f9..f5b0e77 100644
--- a/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
+++ b/common/common-rest/src/test/java/org/apache/servicecomb/common/rest/codec/param/TestQueryProcessorCreator.java
@@ -52,6 +52,7 @@ public class TestQueryProcessorCreator {
     Assert.assertEquals(null, result);
   }
 
+  @SuppressWarnings("UnusedAssignment")
   @Test
   public void testCreateNullAsEmpty() throws Exception {
     HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
@@ -70,12 +71,12 @@ public class TestQueryProcessorCreator {
     Assert.assertEquals("Hello", result);
 
     Mockito.when(request.getParameter("query")).thenReturn("");
-    result = (String) (String) processor.getValue(request);
+    result = (String) processor.getValue(request);
     Assert.assertEquals(null, result);
 
     Mockito.when(request.getParameter("query")).thenReturn(null);
     result = (String) processor.convertValue(null, TypeFactory.defaultInstance().constructType(String.class));
-    result = (String) (String) processor.getValue(request);
+    result = (String) processor.getValue(request);
     Assert.assertEquals(null, result);
   }
 }
diff --git a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/SmartCareImpl.java b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/SmartCareImpl.java
index 6416b2e..69a4abd 100644
--- a/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/SmartCareImpl.java
+++ b/demo/demo-pojo/pojo-server/src/main/java/org/apache/servicecomb/demo/pojo/server/SmartCareImpl.java
@@ -37,6 +37,7 @@ public class SmartCareImpl implements SmartCare {
     return resp;
   }
 
+  @SuppressWarnings("divzero")
   @Override
   public Response delApplication(String appName) {
     // TODO: delete application
diff --git a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDownload.java b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDownload.java
index 6b73135..0436382 100644
--- a/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDownload.java
+++ b/demo/demo-springmvc/springmvc-client/src/main/java/org/apache/servicecomb/demo/springmvc/client/TestDownload.java
@@ -31,6 +31,8 @@ import org.apache.servicecomb.provider.pojo.Invoker;
 import org.apache.servicecomb.provider.springmvc.reference.CseRestTemplate;
 import org.springframework.web.client.RestTemplate;
 
+import com.google.common.collect.Iterables;
+
 public class TestDownload {
   private File dir = new File("target/download");
 
@@ -89,6 +91,7 @@ public class TestDownload {
             content);
   }
 
+  @SuppressWarnings("unchecked")
   public void runRest() {
     futures.add(checkFile(intf.tempFileEntity(content)));
     futures.add(checkFuture(templateGet("tempFileEntity").saveAsBytes()));
@@ -126,7 +129,7 @@ public class TestDownload {
 
     try {
       CompletableFuture
-          .allOf(futures.toArray(new CompletableFuture[futures.size()]))
+          .allOf(Iterables.toArray((List<CompletableFuture<Object>>) (Object) futures, CompletableFuture.class))
           .get();
     } catch (InterruptedException | ExecutionException e1) {
       TestMgr.failed("test download failed.", e1);
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/config/impl/XmlLoader.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/config/impl/XmlLoader.java
index 4f95e2d..254b1ed 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/config/impl/XmlLoader.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/config/impl/XmlLoader.java
@@ -67,7 +67,7 @@ public class XmlLoader extends AbstractLoader {
           }
 
           Element clone = (Element) doc.importNode(child, true);
-          Element exist = findAndSetExist((Element) clone);
+          Element exist = findAndSetExist(clone);
           if (exist == null) {
             root.appendChild(clone);
             continue;
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/IpPort.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/IpPort.java
index c8f4743..d8515ee 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/IpPort.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/IpPort.java
@@ -19,6 +19,8 @@ package org.apache.servicecomb.foundation.common.net;
 
 import java.net.InetSocketAddress;
 
+import com.google.common.base.Objects;
+
 public class IpPort {
   private String hostOrIp;
 
@@ -54,6 +56,11 @@ public class IpPort {
   }
 
   @Override
+  public int hashCode() {
+    return Objects.hashCode(port, hostOrIp);
+  }
+
+  @Override
   public boolean equals(Object o) {
     if (this == o) {
       return true;
diff --git a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
index a25ec9a..6024b6d 100644
--- a/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
+++ b/foundations/foundation-common/src/main/java/org/apache/servicecomb/foundation/common/net/NetUtils.java
@@ -199,7 +199,7 @@ public final class NetUtils {
   public static String getHostName() {
     //If failed to get host name ,micro-service will registry failed
     //So I add retry mechanism
-    if(hostName == null) {
+    if (hostName == null) {
       doGetHostNameAndHostAddress();
     }
     return hostName;
@@ -208,7 +208,7 @@ public final class NetUtils {
   public static String getHostAddress() {
     //If failed to get host address ,micro-service will registry failed
     //So I add retry mechanism
-    if(hostAddress == null) {
+    if (hostAddress == null) {
       doGetHostNameAndHostAddress();
     }
     return hostAddress;
@@ -226,6 +226,7 @@ public final class NetUtils {
     return address;
   }
 
+  @SuppressWarnings({"unused", "try"})
   public static boolean canTcpListen(InetAddress address, int port) {
     try (ServerSocket ss = new ServerSocket(port, 0, address)) {
       return true;
diff --git a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java
index 6dbe9f0..ec7def6 100644
--- a/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java
+++ b/foundations/foundation-protobuf/src/test/java/org/apache/servicecomb/foundation/protobuf/internal/model/ProtobufRoot.java
@@ -3,7 +3,7 @@
 
 package org.apache.servicecomb.foundation.protobuf.internal.model;
 
-@SuppressWarnings("all")
+@SuppressWarnings({"all", "cast"})
 public final class ProtobufRoot {
   private ProtobufRoot() {
   }
diff --git a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/CertificateUtilTest.java b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/CertificateUtilTest.java
index 4fa45e5..0285b8b 100644
--- a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/CertificateUtilTest.java
+++ b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/CertificateUtilTest.java
@@ -44,6 +44,8 @@ import mockit.Mocked;
 
 public class CertificateUtilTest {
   class MyX509Certificate extends X509Certificate {
+    private static final long serialVersionUID = -3585440601605666278L;
+
     public void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException {
     }
 
diff --git a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TrustManagerExtTest.java b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TrustManagerExtTest.java
index 008d56b..22f8cb7 100644
--- a/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TrustManagerExtTest.java
+++ b/foundations/foundation-ssl/src/test/java/org/apache/servicecomb/foundation/ssl/TrustManagerExtTest.java
@@ -84,6 +84,8 @@ public class TrustManagerExtTest {
   }
 
   class MyX509Certificate extends X509Certificate {
+    private static final long serialVersionUID = -3585440601605666276L;
+
     public void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException {
     }
 
@@ -262,9 +264,8 @@ public class TrustManagerExtTest {
     Assert.assertNotNull(trustManagerExt);
   }
 
-  @SuppressWarnings("static-access")
   @Test
-  public void testConstructorWithParam(@Mocked CertificateUtil certificateUtil) {
+  public void testConstructorWithParam() {
     MyX509Certificate myX509Certificate1 = new MyX509Certificate();
     MyX509Certificate myX509Certificate2 = new MyX509Certificate();
 
@@ -272,12 +273,12 @@ public class TrustManagerExtTest {
     MyX509CertificateArray[0] = myX509Certificate1;
     MyX509CertificateArray[1] = myX509Certificate2;
 
-    new Expectations() {
+    new Expectations(CertificateUtil.class) {
       {
-        certificateUtil.findOwner((X509Certificate[]) any);
+        CertificateUtil.findOwner((X509Certificate[]) any);
         result = any;
 
-        certificateUtil.getCN((X509Certificate) any);
+        CertificateUtil.getCN((X509Certificate) any);
         result = "10.67.147.115";
       }
     };
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
index 5a61dc7..7176d7a 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
@@ -49,20 +49,19 @@ public class DefaultRetryExtensionsFactory implements ExtensionsFactory {
     return ACCEPT_KEYS.contains(key) && ACCEPT_VALUES.contains(value);
   }
 
-  @SuppressWarnings("unchecked")
   public RetryHandler createRetryHandler(String retryName, String microservice) {
     return new DefaultLoadBalancerRetryHandler(
         Configuration.INSTANCE.getRetryOnSame(microservice),
         Configuration.INSTANCE.getRetryOnNext(microservice), true) {
       private List<Class<? extends Throwable>> retriable = Lists
-          .newArrayList(new Class[] {ConnectException.class, SocketTimeoutException.class});
+          .newArrayList(ConnectException.class, SocketTimeoutException.class);
 
       Map<Class<? extends Throwable>, List<String>> strictRetriable =
           ImmutableMap.<Class<? extends Throwable>, List<String>>builder()
               .put(ConnectException.class, Lists.newArrayList())
               .put(SocketTimeoutException.class, Lists.newArrayList())
               /*
-               * deal with some special exceptions caused by the server side close the connection 
+               * deal with some special exceptions caused by the server side close the connection
                */
               .put(IOException.class, Lists.newArrayList(new String[] {"Connection reset by peer"}))
               .put(VertxException.class, Lists.newArrayList(new String[] {"Connection was closed"}))
diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
index eab708c..707651d 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadbalanceHandler.java
@@ -229,7 +229,7 @@ public class LoadbalanceHandler implements Handler {
 
   private void send(Invocation invocation, AsyncResponse asyncResp, final LoadBalancer chosenLB) throws Exception {
     long time = System.currentTimeMillis();
-    ServiceCombServer server = (ServiceCombServer) chosenLB.chooseServer(invocation);
+    ServiceCombServer server = chosenLB.chooseServer(invocation);
     if (null == server) {
       asyncResp.consumerFail(ExceptionUtils.lbAddressNotFound(invocation.getMicroserviceName(),
           invocation.getMicroserviceVersionRule(),
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
index 8ac41a7..339c522 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestLoadBalanceHandler2.java
@@ -146,26 +146,26 @@ public class TestLoadBalanceHandler2 {
 
     handler = new LoadbalanceHandler();
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server, null);
 
     data.put("noneMatchInstance", noneMatchInstance);
     parent.cacheVersion(1);
     handler = new LoadbalanceHandler();
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9092");
 
     data.put("regionMatchInstance", regionMatchInstance);
     parent.cacheVersion(parent.cacheVersion() + 1);
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9091");
 
     data.put("allmatchInstance", allmatchInstance);
     parent.cacheVersion(parent.cacheVersion() + 1);
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9090");
 
     ServiceCombLoadBalancerStats.INSTANCE.markSuccess(server);
@@ -177,7 +177,7 @@ public class TestLoadBalanceHandler2 {
     //if errorThresholdPercentage is 0,that means errorThresholdPercentage is not active.
     ArchaiusUtils.setProperty("servicecomb.loadbalance.isolation.errorThresholdPercentage", "0");
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9090");
 
     //if errorThresholdPercentage greater than 0, it will activate.
@@ -185,20 +185,20 @@ public class TestLoadBalanceHandler2 {
     ArchaiusUtils.setProperty("servicecomb.loadbalance.isolation.minIsolationTime", "10");
     ServiceCombServer server2 = server;
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9091");
     ServiceCombLoadBalancerStats.INSTANCE.markSuccess(server2);
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9091");
     TimeUnit.MILLISECONDS.sleep(20);
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9090");
     ServiceCombLoadBalancerStats.INSTANCE.markFailure(server2);
     ServiceCombLoadBalancerStats.INSTANCE.markFailure(server2);
     loadBalancer = handler.getOrCreateLoadBalancer(invocation);
-    server = (ServiceCombServer) loadBalancer.chooseServer(invocation);
+    server = loadBalancer.chooseServer(invocation);
     Assert.assertEquals(server.getEndpoint().getEndpoint(), "rest://localhost:9091");
   }
 
diff --git a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingHandler.java b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingHandler.java
index bd188de..7990d0d 100644
--- a/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingHandler.java
+++ b/handlers/handler-tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingHandler.java
@@ -40,6 +40,7 @@ class ZipkinTracingHandler implements Handler {
     this.tracingDelegate = tracingDelegate;
   }
 
+  @SuppressWarnings({"try", "unused"})
   @Override
   public void handle(Invocation invocation, AsyncResponse asyncResp) throws Exception {
     Span span = tracingDelegate.createSpan(invocation);
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 ac4c552..d2e2448 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
@@ -32,7 +32,7 @@ import org.springframework.web.client.HttpClientErrorException;
 import org.springframework.web.client.RestClientException;
 
 public class TestRestServerConfigEdge {
-  static GateRestTemplate client = (GateRestTemplate) GateRestTemplate.createEdgeRestTemplate("dataTypeJaxrs");
+  static GateRestTemplate client = GateRestTemplate.createEdgeRestTemplate("dataTypeJaxrs");
 
   @Test
   public void testIllegalPathParam() throws IOException {
diff --git a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java
index 5d04697..3b62907 100644
--- a/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java
+++ b/integration-tests/pojo-test/src/test/java/org/apache/servicecomb/demo/pojo/test/endpoints/SmartCareImpl.java
@@ -40,6 +40,7 @@ public class SmartCareImpl implements SmartCare {
     return resp;
   }
 
+  @SuppressWarnings("divzero")
   @Override
   public Response delApplication(String appName) {
     // TODO: delete application
diff --git a/java-chassis-dependencies/pom.xml b/java-chassis-dependencies/pom.xml
index 8883df1..6ab3994 100644
--- a/java-chassis-dependencies/pom.xml
+++ b/java-chassis-dependencies/pom.xml
@@ -1063,6 +1063,8 @@
             <compilerArgs>
               <arg>-Werror</arg>
               <arg>-Xlint:all</arg>
+              <!--not care for jdk8/jdk7 compatible problem-->
+              <arg>-Xlint:-classfile</arg>
             </compilerArgs>
           </configuration>
         </plugin>
diff --git a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
index ae0c40d..d572506 100644
--- a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
+++ b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsBootListener.java
@@ -48,6 +48,7 @@ public class MetricsBootListener implements BootListener {
         break;
       case BEFORE_CLOSE:
         metricsBootstrap.shutdown();
+        break;
       default:
         break;
     }
diff --git a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java b/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
index 175f567..974b84c 100644
--- a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
+++ b/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
@@ -43,6 +43,7 @@ public class RestServletInitializer extends AbstractConfigurableEmbeddedServletC
     implements ServletContextInitializer {
   private static final Logger LOGGER = LoggerFactory.getLogger(RestServletInitializer.class);
 
+  @SuppressWarnings("try")
   @Override
   public void onStartup(ServletContext servletContext) throws ServletException {
     if (getPort() == 0) {
diff --git a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/TestPojoConsumerEqualSwagger.java b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/TestPojoConsumerEqualSwagger.java
index 0c553c6..f4c3987 100644
--- a/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/TestPojoConsumerEqualSwagger.java
+++ b/swagger/swagger-invocation/invocation-core/src/test/java/org/apache/servicecomb/swagger/invocation/arguments/TestPojoConsumerEqualSwagger.java
@@ -124,7 +124,7 @@ public class TestPojoConsumerEqualSwagger {
 
     Assert.assertEquals(bytes, invoker.getSwaggerArgument(0));
 
-    Assert.assertArrayEquals(bytes, (byte[]) result);
+    Assert.assertArrayEquals(bytes, result);
   }
 
   @Test
diff --git a/tracing/tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviser.java b/tracing/tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviser.java
index 58d2aba..42ec0bb 100644
--- a/tracing/tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviser.java
+++ b/tracing/tracing-zipkin/src/main/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviser.java
@@ -31,6 +31,7 @@ class ZipkinTracingAdviser {
     this.tracer = tracer;
   }
 
+  @SuppressWarnings({"unused", "try"})
   <T> T invoke(String spanName, String path, ThrowableSupplier<T> supplier) throws Throwable {
     Span span = createSpan(spanName, path);
     try (SpanInScope spanInScope = tracer.withSpanInScope(span)) {
diff --git a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
index c9e05fe..e6416fb 100644
--- a/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
+++ b/tracing/tracing-zipkin/src/test/java/org/apache/servicecomb/tracing/zipkin/ZipkinTracingAdviserTest.java
@@ -27,6 +27,7 @@ import static org.hamcrest.collection.IsIterableContainingInOrder.contains;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.fail;
 
+import java.lang.reflect.Array;
 import java.util.List;
 import java.util.Map;
 import java.util.Queue;
@@ -104,11 +105,12 @@ public class ZipkinTracingAdviserTest {
     assertThat(tracedValues(span), containsInAnyOrder(this.getClass().getCanonicalName(), "RuntimeException: oops"));
   }
 
+  @SuppressWarnings({"unused", "try"})
   @Test
-  public void startsNewChildSpan() throws Exception {
+  public void startsNewChildSpan() {
     CyclicBarrier cyclicBarrier = new CyclicBarrier(nThreads);
 
-    CompletableFuture<?>[] futures = new CompletableFuture[nThreads];
+    CompletableFuture<?>[] futures = (CompletableFuture<?>[]) Array.newInstance(CompletableFuture.class, nThreads);
     for (int i = 0; i < nThreads; i++) {
       futures[i] = CompletableFuture.runAsync(() -> {
         Span currentSpan = tracing.tracer().newTrace().start();
diff --git a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/AccessLogGenerator.java b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/AccessLogGenerator.java
index a2079eb..27d8e0c 100644
--- a/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/AccessLogGenerator.java
+++ b/transports/transport-rest/transport-rest-vertx/src/main/java/org/apache/servicecomb/transport/rest/vertx/accesslog/AccessLogGenerator.java
@@ -23,6 +23,8 @@ import org.apache.servicecomb.transport.rest.vertx.accesslog.element.AccessLogIt
 import org.apache.servicecomb.transport.rest.vertx.accesslog.parser.AccessLogPatternParser;
 import org.apache.servicecomb.transport.rest.vertx.accesslog.parser.impl.VertxRestAccessLogPatternParser;
 
+import com.google.common.collect.Iterables;
+
 import io.vertx.ext.web.RoutingContext;
 
 /*
@@ -41,7 +43,7 @@ public class AccessLogGenerator {
   @SuppressWarnings("unchecked")
   public AccessLogGenerator(String rawPattern) {
     List<AccessLogItem<RoutingContext>> accessLogItemList = accessLogPatternParser.parsePattern(rawPattern);
-    accessLogItems = accessLogItemList.toArray(new AccessLogItem[0]);
+    accessLogItems = Iterables.toArray(accessLogItemList, AccessLogItem.class);
   }
 
   public String generateLog(AccessLogParam<RoutingContext> accessLogParam) {