diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java index 63486aa5c5c..abc9cf21afb 100644 --- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java +++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java @@ -109,10 +109,10 @@ public void destroy() { * @param invokers invoker candidates * @param selected exclude selected invokers or not * @return the invoker which will final to do invoke. - * @throws RpcException + * @throws RpcException exception */ protected Invoker select(LoadBalance loadbalance, Invocation invocation, - List> invokers, List> selected) throws RpcException { + List> invokers, List> selected) throws RpcException { if (CollectionUtils.isEmpty(invokers)) { return null; @@ -120,7 +120,7 @@ protected Invoker select(LoadBalance loadbalance, Invocation invocation, String methodName = invocation == null ? StringUtils.EMPTY : invocation.getMethodName(); boolean sticky = invokers.get(0).getUrl() - .getMethodParameter(methodName, Constants.CLUSTER_STICKY_KEY, Constants.DEFAULT_CLUSTER_STICKY); + .getMethodParameter(methodName, Constants.CLUSTER_STICKY_KEY, Constants.DEFAULT_CLUSTER_STICKY); //ignore overloaded method if (stickyInvoker != null && !invokers.contains(stickyInvoker)) { @@ -142,7 +142,7 @@ protected Invoker select(LoadBalance loadbalance, Invocation invocation, } private Invoker doSelect(LoadBalance loadbalance, Invocation invocation, - List> invokers, List> selected) throws RpcException { + List> invokers, List> selected) throws RpcException { if (CollectionUtils.isEmpty(invokers)) { return null; @@ -180,19 +180,20 @@ private Invoker doSelect(LoadBalance loadbalance, Invocation invocation, * Reselect, use invokers not in `selected` first, if all invokers are in `selected`, * just pick an available one using loadbalance policy. * - * @param loadbalance - * @param invocation - * @param invokers - * @param selected - * @return - * @throws RpcException + * @param loadbalance load balance policy + * @param invocation invocation + * @param invokers invoker candidates + * @param selected exclude selected invokers or not + * @param availablecheck check invoker available if true + * @return the reselect result to do invoke + * @throws RpcException exception */ private Invoker reselect(LoadBalance loadbalance, Invocation invocation, - List> invokers, List> selected, boolean availablecheck) throws RpcException { + List> invokers, List> selected, boolean availablecheck) throws RpcException { //Allocating one in advance, this list is certain to be used. List> reselectInvokers = new ArrayList<>( - invokers.size() > 1 ? (invokers.size() - 1) : invokers.size()); + invokers.size() > 1 ? (invokers.size() - 1) : invokers.size()); // First, try picking a invoker not in `selected`. for (Invoker invoker : invokers) { @@ -242,7 +243,6 @@ public Result invoke(final Invocation invocation) throws RpcException { } protected void checkWhetherDestroyed() { - if (destroyed.get()) { throw new RpcException("Rpc cluster invoker for " + getInterface() + " on consumer " + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ContextFilter.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ContextFilter.java index db68ea1a7f3..7f30151d1d1 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ContextFilter.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/ContextFilter.java @@ -42,8 +42,9 @@ public class ContextFilter implements Filter { public Result invoke(Invoker invoker, Invocation invocation) throws RpcException { Map attachments = invocation.getAttachments(); if (attachments != null) { - attachments = new HashMap(attachments); + attachments = new HashMap<>(attachments); attachments.remove(Constants.PATH_KEY); + attachments.remove(Constants.INTERFACE_KEY); attachments.remove(Constants.GROUP_KEY); attachments.remove(Constants.VERSION_KEY); attachments.remove(Constants.DUBBO_VERSION_KEY); diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java index 4979916e66f..d59af2b4502 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/protocol/AbstractInvoker.java @@ -152,7 +152,6 @@ public Result invoke(Invocation inv) throws RpcException { } RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation); - try { return doInvoke(invocation); } catch (InvocationTargetException e) { // biz exception