You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2024/09/05 01:40:22 UTC
(dubbo) branch 3.3 updated: Move executor initialization after route for rest (#14568)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.3 by this push:
new 9e3a72cf84 Move executor initialization after route for rest (#14568)
9e3a72cf84 is described below
commit 9e3a72cf84553fd5c95d8c3bbefe26a14cb7e226
Author: Sean Yang <ox...@gmail.com>
AuthorDate: Thu Sep 5 09:40:17 2024 +0800
Move executor initialization after route for rest (#14568)
---
.../executor/AbstractIsolationExecutorSupport.java | 10 +--
.../tri/h12/AbstractServerTransportListener.java | 82 +++++++++++++---------
.../h12/grpc/GrpcHttp2ServerTransportListener.java | 54 ++++++++------
.../DefaultHttp11ServerTransportListener.java | 11 ---
.../http2/GenericHttp2ServerTransportListener.java | 10 ---
.../mapping/DefaultRequestMappingRegistry.java | 2 +-
.../transport/TripleIsolationExecutorSupport.java | 28 ++++----
.../tri/test/TestServerTransportListener.java | 2 +-
8 files changed, 100 insertions(+), 99 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/executor/AbstractIsolationExecutorSupport.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/executor/AbstractIsolationExecutorSupport.java
index b188e14775..d740bd59b4 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/executor/AbstractIsolationExecutorSupport.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/executor/AbstractIsolationExecutorSupport.java
@@ -16,7 +16,6 @@
*/
package org.apache.dubbo.rpc.executor;
-import org.apache.dubbo.common.ServiceKey;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;
import org.apache.dubbo.rpc.model.FrameworkServiceRepository;
@@ -57,15 +56,12 @@ public abstract class AbstractIsolationExecutorSupport implements ExecutorSuppor
return executorRepository.getExecutor(providerModel, serviceUrls.get(0));
}
- protected ServiceKey getServiceKey(Object data) {
+ protected String getServiceKey(Object data) {
return null;
}
protected ProviderModel getProviderModel(Object data) {
- ServiceKey serviceKey = getServiceKey(data);
- if (serviceKey == null) {
- return null;
- }
- return frameworkServiceRepository.lookupExportedService(serviceKey.toString());
+ String serviceKey = getServiceKey(data);
+ return serviceKey == null ? null : frameworkServiceRepository.lookupExportedService(serviceKey);
}
}
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
index 0cbbdba3e5..a6f6b47917 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/AbstractServerTransportListener.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.constants.LoggerCodeConstants;
import org.apache.dubbo.common.logger.FluentLogger;
import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;
+import org.apache.dubbo.common.threadpool.serial.SerializingExecutor;
import org.apache.dubbo.common.utils.MethodUtils;
import org.apache.dubbo.remoting.http12.HttpChannel;
import org.apache.dubbo.remoting.http12.HttpInputMessage;
@@ -32,7 +33,6 @@ import org.apache.dubbo.remoting.http12.message.MethodMetadata;
import org.apache.dubbo.rpc.HeaderFilter;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcInvocation;
-import org.apache.dubbo.rpc.executor.ExecutorSupport;
import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.model.MethodDescriptor;
import org.apache.dubbo.rpc.protocol.tri.DescriptorUtils;
@@ -79,56 +79,65 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
.getActivateExtension(url, CommonConstants.HEADER_FILTER_KEY);
}
- protected static ExecutorSupport getExecutorSupport(URL url) {
- return ExecutorRepository.getInstance(url.getOrDefaultApplicationModel())
- .getExecutorSupport(url);
- }
-
@Override
- public void onMetadata(HEADER metadata) {
+ public final void onMetadata(HEADER metadata) {
+ httpMetadata = metadata;
+ exceptionCustomizerWrapper.setMetadata(metadata);
+
+ try {
+ onBeforeMetadata(metadata);
+ } catch (Throwable t) {
+ logError(t);
+ onMetadataError(metadata, t);
+ return;
+ }
+
try {
- executor = initializeExecutor(metadata);
- } catch (Throwable throwable) {
- LOGGER.error(LoggerCodeConstants.COMMON_ERROR_USE_THREAD_POOL, "Initialize executor fail.", throwable);
- onError(throwable);
+ executor = initializeExecutor(url, metadata);
+ } catch (Throwable t) {
+ LOGGER.error(LoggerCodeConstants.COMMON_ERROR_USE_THREAD_POOL, "Initialize executor failed.", t);
+ onError(t);
return;
}
if (executor == null) {
- LOGGER.internalError("Executor must be not null.");
- onError(new NullPointerException("initializeExecutor return null"));
+ LOGGER.internalError("Executor must not be null.");
+ onError(new NullPointerException("Initialize executor return null"));
return;
}
+
executor.execute(() -> {
try {
- doOnMetadata(metadata);
+ onPrepareMetadata(metadata);
+ setHttpMessageListener(buildHttpMessageListener());
+ onMetadataCompletion(metadata);
} catch (Throwable t) {
logError(t);
onMetadataError(metadata, t);
- onError(t);
}
});
}
- /**
- * default direct executor
- */
- protected Executor initializeExecutor(HEADER metadata) {
- return Runnable::run;
+ protected void onBeforeMetadata(HEADER metadata) {
+ doRoute(metadata);
}
- protected void doOnMetadata(HEADER metadata) {
- onPrepareMetadata(metadata);
- httpMetadata = metadata;
- exceptionCustomizerWrapper.setMetadata(metadata);
-
+ protected final void doRoute(HEADER metadata) {
context = requestRouter.route(url, metadata, httpChannel);
if (context == null) {
throw new HttpStatusException(HttpStatus.NOT_FOUND.getCode(), "Invoker not found");
}
-
exceptionCustomizerWrapper.setMethodDescriptor(context.getMethodDescriptor());
- setHttpMessageListener(buildHttpMessageListener());
- onMetadataCompletion(metadata);
+ }
+
+ protected Executor initializeExecutor(URL url, HEADER metadata) {
+ url = context.getInvoker().getUrl();
+ return getExecutor(url, url);
+ }
+
+ protected final Executor getExecutor(URL url, Object data) {
+ return new SerializingExecutor(ExecutorRepository.getInstance(url.getOrDefaultApplicationModel())
+ .getExecutorSupport(url)
+ .getExecutor(data));
}
protected void onPrepareMetadata(HEADER metadata) {
@@ -143,6 +152,7 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
protected void onMetadataError(HEADER metadata, Throwable throwable) {
initializeAltSvc(url);
+ onError(throwable);
}
/**
@@ -151,7 +161,7 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
protected void initializeAltSvc(URL url) {}
@Override
- public void onData(MESSAGE message) {
+ public final void onData(MESSAGE message) {
if (executor == null) {
try {
Throwable t = new NullPointerException("Executor not initialized");
@@ -160,6 +170,7 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
} finally {
onDataFinally(message);
}
+ return;
}
executor.execute(() -> {
try {
@@ -178,7 +189,6 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
return;
}
onPrepareData(message);
- // decode message
httpMessageListener.onMessage(message.getBody());
onDataCompletion(message);
}
@@ -208,11 +218,12 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
}
private void logError(Throwable t) {
- t = ExceptionUtils.unwrap(t);
Supplier<String> msg = () -> {
- StringBuilder sb = new StringBuilder(64);
- sb.append("An error occurred while processing the http request, ");
- sb.append(httpMetadata);
+ StringBuilder sb = new StringBuilder(128);
+ sb.append("An error occurred while processing the http request with ")
+ .append(getClass().getSimpleName())
+ .append(", ")
+ .append(httpMetadata);
if (TripleProtocol.VERBOSE_ENABLED) {
sb.append(", headers=").append(httpMetadata.headers());
}
@@ -238,7 +249,8 @@ public abstract class AbstractServerTransportListener<HEADER extends RequestMeta
}
return sb.toString();
};
- LOGGER.msg(msg).log(exceptionCustomizerWrapper.resolveLogLevel(t), t);
+ Throwable th = ExceptionUtils.unwrap(t);
+ LOGGER.msg(msg).log(exceptionCustomizerWrapper.resolveLogLevel(th), th);
}
protected final RpcInvocation buildRpcInvocation(RpcInvocationBuildContext context) {
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
index 51aa756efe..8f6c3350d3 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/grpc/GrpcHttp2ServerTransportListener.java
@@ -41,6 +41,7 @@ import org.apache.dubbo.rpc.protocol.tri.h12.http2.GenericHttp2ServerTransportLi
import java.io.IOException;
import java.io.InputStream;
+import java.util.concurrent.Executor;
import java.util.function.Function;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_FAILED_PARSE;
@@ -55,6 +56,37 @@ public class GrpcHttp2ServerTransportListener extends GenericHttp2ServerTranspor
super(h2StreamChannel, url, frameworkModel);
}
+ @Override
+ protected void onBeforeMetadata(Http2Header metadata) {}
+
+ @Override
+ protected Executor initializeExecutor(URL url, Http2Header metadata) {
+ return getExecutor(url, metadata);
+ }
+
+ @Override
+ protected void onPrepareMetadata(Http2Header metadata) {
+ doRoute(metadata);
+ }
+
+ @Override
+ protected void onMetadataCompletion(Http2Header metadata) {
+ processGrpcHeaders(metadata);
+ super.onMetadataCompletion(metadata);
+ }
+
+ private void processGrpcHeaders(Http2Header metadata) {
+ String messageEncoding = metadata.header(GrpcHeaderNames.GRPC_ENCODING.getName());
+ if (messageEncoding != null && !Identity.MESSAGE_ENCODING.equals(messageEncoding)) {
+ DeCompressor compressor = DeCompressor.getCompressor(getFrameworkModel(), messageEncoding);
+ if (compressor == null) {
+ throw new UnimplementedException(
+ GrpcHeaderNames.GRPC_ENCODING.getName() + " '" + messageEncoding + "'");
+ }
+ ((GrpcStreamingDecoder) getStreamingDecoder()).setDeCompressor(compressor);
+ }
+ }
+
@Override
protected StreamingDecoder newStreamingDecoder() {
return new GrpcStreamingDecoder();
@@ -100,24 +132,6 @@ public class GrpcHttp2ServerTransportListener extends GenericHttp2ServerTranspor
methodMetadata.getActualResponseType());
}
- @Override
- protected void onMetadataCompletion(Http2Header metadata) {
- processGrpcHeaders(metadata);
- super.onMetadataCompletion(metadata);
- }
-
- private void processGrpcHeaders(Http2Header metadata) {
- String messageEncoding = metadata.header(GrpcHeaderNames.GRPC_ENCODING.getName());
- if (messageEncoding != null && !Identity.MESSAGE_ENCODING.equals(messageEncoding)) {
- DeCompressor compressor = DeCompressor.getCompressor(getFrameworkModel(), messageEncoding);
- if (compressor == null) {
- throw new UnimplementedException(
- GrpcHeaderNames.GRPC_ENCODING.getName() + " '" + messageEncoding + "'");
- }
- ((GrpcStreamingDecoder) getStreamingDecoder()).setDeCompressor(compressor);
- }
- }
-
@Override
protected RpcInvocation onBuildRpcInvocationCompletion(RpcInvocation invocation) {
String timeoutString = getHttpMetadata().header(GrpcHeaderNames.GRPC_TIMEOUT.getName());
@@ -147,9 +161,7 @@ public class GrpcHttp2ServerTransportListener extends GenericHttp2ServerTranspor
@Override
protected void setMethodDescriptor(MethodDescriptor methodDescriptor) {
- GrpcCompositeCodec grpcCompositeCodec =
- (GrpcCompositeCodec) getContext().getHttpMessageDecoder();
- grpcCompositeCodec.loadPackableMethod(methodDescriptor);
+ ((GrpcCompositeCodec) getContext().getHttpMessageDecoder()).loadPackableMethod(methodDescriptor);
super.setMethodDescriptor(methodDescriptor);
}
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
index ba020481de..e59cb07421 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http1/DefaultHttp11ServerTransportListener.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.rpc.protocol.tri.h12.http1;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.stream.StreamObserver;
-import org.apache.dubbo.common.threadpool.serial.SerializingExecutor;
import org.apache.dubbo.remoting.Constants;
import org.apache.dubbo.remoting.http12.HttpChannel;
import org.apache.dubbo.remoting.http12.HttpHeaderNames;
@@ -32,7 +31,6 @@ import org.apache.dubbo.remoting.http12.message.MediaType;
import org.apache.dubbo.remoting.http12.message.codec.JsonCodec;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcInvocation;
-import org.apache.dubbo.rpc.executor.ExecutorSupport;
import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.model.MethodDescriptor;
import org.apache.dubbo.rpc.protocol.tri.Http3Exchanger;
@@ -44,19 +42,15 @@ import org.apache.dubbo.rpc.protocol.tri.h12.ServerCallListener;
import org.apache.dubbo.rpc.protocol.tri.h12.ServerStreamServerCallListener;
import org.apache.dubbo.rpc.protocol.tri.h12.UnaryServerCallListener;
-import java.util.concurrent.Executor;
-
public class DefaultHttp11ServerTransportListener
extends AbstractServerTransportListener<RequestMetadata, HttpInputMessage>
implements Http1ServerTransportListener {
- private final ExecutorSupport executorSupport;
private final HttpChannel httpChannel;
private Http1ServerChannelObserver responseObserver;
public DefaultHttp11ServerTransportListener(HttpChannel httpChannel, URL url, FrameworkModel frameworkModel) {
super(frameworkModel, url, httpChannel);
- executorSupport = getExecutorSupport(url);
this.httpChannel = httpChannel;
responseObserver = prepareResponseObserver(new Http1UnaryServerChannelObserver(httpChannel));
}
@@ -68,11 +62,6 @@ public class DefaultHttp11ServerTransportListener
return responseObserver;
}
- @Override
- protected Executor initializeExecutor(RequestMetadata metadata) {
- return new SerializingExecutor(executorSupport.getExecutor(metadata));
- }
-
@Override
protected HttpMessageListener buildHttpMessageListener() {
RpcInvocationBuildContext context = getContext();
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/GenericHttp2ServerTransportListener.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/GenericHttp2ServerTransportListener.java
index 09ba3fc449..9f395c5507 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/GenericHttp2ServerTransportListener.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/h12/http2/GenericHttp2ServerTransportListener.java
@@ -17,7 +17,6 @@
package org.apache.dubbo.rpc.protocol.tri.h12.http2;
import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.threadpool.serial.SerializingExecutor;
import org.apache.dubbo.remoting.Constants;
import org.apache.dubbo.remoting.http12.HttpHeaderNames;
import org.apache.dubbo.remoting.http12.h2.CancelStreamException;
@@ -34,7 +33,6 @@ import org.apache.dubbo.remoting.http12.message.codec.JsonCodec;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.rpc.RpcInvocation;
-import org.apache.dubbo.rpc.executor.ExecutorSupport;
import org.apache.dubbo.rpc.model.FrameworkModel;
import org.apache.dubbo.rpc.model.MethodDescriptor;
import org.apache.dubbo.rpc.protocol.tri.Http3Exchanger;
@@ -47,13 +45,11 @@ import org.apache.dubbo.rpc.protocol.tri.h12.ServerStreamServerCallListener;
import org.apache.dubbo.rpc.protocol.tri.h12.UnaryServerCallListener;
import java.io.InputStream;
-import java.util.concurrent.Executor;
public class GenericHttp2ServerTransportListener extends AbstractServerTransportListener<Http2Header, Http2InputMessage>
implements Http2TransportListener {
private final H2StreamChannel h2StreamChannel;
- private final ExecutorSupport executorSupport;
private final StreamingDecoder streamingDecoder;
private Http2ServerChannelObserver responseObserver;
private ServerCallListener serverCallListener;
@@ -62,7 +58,6 @@ public class GenericHttp2ServerTransportListener extends AbstractServerTransport
H2StreamChannel h2StreamChannel, URL url, FrameworkModel frameworkModel) {
super(frameworkModel, url, h2StreamChannel);
this.h2StreamChannel = h2StreamChannel;
- executorSupport = getExecutorSupport(url);
streamingDecoder = newStreamingDecoder();
responseObserver = prepareResponseObserver(newResponseObserver(h2StreamChannel));
}
@@ -88,11 +83,6 @@ public class GenericHttp2ServerTransportListener extends AbstractServerTransport
return responseObserver;
}
- @Override
- protected Executor initializeExecutor(Http2Header metadata) {
- return new SerializingExecutor(executorSupport.getExecutor(metadata));
- }
-
@Override
protected HttpMessageListener buildHttpMessageListener() {
RpcInvocationBuildContext context = getContext();
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/rest/mapping/DefaultRequestMappingRegistry.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/rest/mapping/DefaultRequestMappingRegistry.java
index 1e7742aa6e..f219b85403 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/rest/mapping/DefaultRequestMappingRegistry.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/rest/mapping/DefaultRequestMappingRegistry.java
@@ -143,7 +143,7 @@ public final class DefaultRequestMappingRegistry implements RequestMappingRegist
}
});
LOGGER.info(
- "Registered {} REST mappings for service [{}] at url [{}] in {}ms",
+ "Registered {} rest mappings for service [{}] at url [{}] in {}ms",
counter,
ClassUtils.toShortString(service),
url.toString(""),
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleIsolationExecutorSupport.java b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleIsolationExecutorSupport.java
index 9bbdca7376..fcfea556f9 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleIsolationExecutorSupport.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/transport/TripleIsolationExecutorSupport.java
@@ -16,7 +16,6 @@
*/
package org.apache.dubbo.rpc.protocol.tri.transport;
-import org.apache.dubbo.common.ServiceKey;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
@@ -37,22 +36,25 @@ public class TripleIsolationExecutorSupport extends AbstractIsolationExecutorSup
}
@Override
- protected ServiceKey getServiceKey(Object data) {
- if (!(data instanceof RequestMetadata)) {
- return null;
+ protected String getServiceKey(Object data) {
+ if (data instanceof RequestMetadata) {
+ RequestMetadata httpMetadata = (RequestMetadata) data;
+ RequestPath path = RequestPath.parse(httpMetadata.path());
+ if (path == null) {
+ return null;
+ }
+ HttpHeaders headers = httpMetadata.headers();
+ return URL.buildKey(
+ path.getServiceInterface(),
+ getHeader(headers, TripleHeaderEnum.SERVICE_GROUP, RestConstants.HEADER_SERVICE_GROUP),
+ getHeader(headers, TripleHeaderEnum.SERVICE_VERSION, RestConstants.HEADER_SERVICE_VERSION));
}
- RequestMetadata httpMetadata = (RequestMetadata) data;
- RequestPath path = RequestPath.parse(httpMetadata.path());
- if (path == null) {
- return null;
+ if (data instanceof URL) {
+ return ((URL) data).getServiceKey();
}
- HttpHeaders headers = httpMetadata.headers();
- return new ServiceKey(
- path.getServiceInterface(),
- getHeader(headers, TripleHeaderEnum.SERVICE_VERSION, RestConstants.HEADER_SERVICE_VERSION),
- getHeader(headers, TripleHeaderEnum.SERVICE_GROUP, RestConstants.HEADER_SERVICE_GROUP));
+ return null;
}
private static String getHeader(HttpHeaders headers, TripleHeaderEnum en, String key) {
diff --git a/dubbo-rpc/dubbo-rpc-triple/src/test/java/org/apache/dubbo/rpc/protocol/tri/test/TestServerTransportListener.java b/dubbo-rpc/dubbo-rpc-triple/src/test/java/org/apache/dubbo/rpc/protocol/tri/test/TestServerTransportListener.java
index 7e06101647..255be42d67 100644
--- a/dubbo-rpc/dubbo-rpc-triple/src/test/java/org/apache/dubbo/rpc/protocol/tri/test/TestServerTransportListener.java
+++ b/dubbo-rpc/dubbo-rpc-triple/src/test/java/org/apache/dubbo/rpc/protocol/tri/test/TestServerTransportListener.java
@@ -31,7 +31,7 @@ public class TestServerTransportListener extends GenericHttp2ServerTransportList
}
@Override
- protected Executor initializeExecutor(Http2Header metadata) {
+ protected Executor initializeExecutor(URL url, Http2Header metadata) {
return Runnable::run;
}
}