Init deadlock (#10503)
* try fix deadlock
* change code style
* change code style
* commit private
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
index a609e88..5b73adb 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultModuleDeployer.java
@@ -125,7 +125,14 @@
}
@Override
- public synchronized Future start() throws IllegalStateException {
+ public Future start() throws IllegalStateException {
+ // initialize,maybe deadlock applicationDeployer lock & moduleDeployer lock
+ applicationDeployer.initialize();
+
+ return startSync();
+ }
+
+ private synchronized Future startSync() throws IllegalStateException {
if (isStopping() || isStopped() || isFailed()) {
throw new IllegalStateException(getIdentifier() + " is stopping or stopped, can not start again");
}
@@ -137,8 +144,7 @@
onModuleStarting();
- // initialize
- applicationDeployer.initialize();
+
initialize();
// export services