This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.2 by this push:
new fa11b68a16 Only throws exception when exporting service (#13217)
fa11b68a16 is described below
commit fa11b68a16a550ed19bb263d2f3ecd6d20a5fb8d
Author: Albumen Kevin <[email protected]>
AuthorDate: Wed Oct 18 11:52:46 2023 +0800
Only throws exception when exporting service (#13217)
---
.../dubbo/qos/protocol/QosProtocolWrapper.java | 23 +++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java
index fe47762a33..2a6dfeff60 100644
---
a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java
+++
b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java
@@ -75,13 +75,13 @@ public class QosProtocolWrapper implements Protocol,
ScopeModelAware {
@Override
public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {
- startQosServer(invoker.getUrl());
+ startQosServer(invoker.getUrl(), true);
return protocol.export(invoker);
}
@Override
public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {
- startQosServer(url);
+ startQosServer(url, false);
return protocol.refer(type, url);
}
@@ -96,7 +96,7 @@ public class QosProtocolWrapper implements Protocol,
ScopeModelAware {
return protocol.getServers();
}
- private void startQosServer(URL url) throws RpcException {
+ private void startQosServer(URL url, boolean isServer) throws RpcException
{
boolean qosCheck = url.getParameter(QOS_CHECK, false);
try {
@@ -134,13 +134,18 @@ public class QosProtocolWrapper implements Protocol,
ScopeModelAware {
} catch (Throwable throwable) {
logger.warn(QOS_FAILED_START_SERVER, "", "", "Fail to start qos
server: ", throwable);
- try {
- stopServer();
- } catch (Throwable stop) {
- logger.warn(QOS_FAILED_START_SERVER, "", "", "Fail to stop qos
server: ", stop);
- }
+
if (qosCheck) {
- throw new RpcException(throwable);
+ try {
+ // Stop QoS Server to support re-start if Qos-Check is
enabled
+ stopServer();
+ } catch (Throwable stop) {
+ logger.warn(QOS_FAILED_START_SERVER, "", "", "Fail to stop
qos server: ", stop);
+ }
+ if (isServer) {
+ // Only throws exception when export services
+ throw new RpcException(throwable);
+ }
}
}
}