diff --git a/build.gradle b/build.gradle index 0b5c035..7490c64 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ plugins { apply from: '../spotless.gradle' group = "org.bdware.sc" -version = "1.10.5" +version = "1.10.6" tasks.withType(JavaCompile) { // options.compilerArgs << '-Xlint:none' // options.compilerArgs << '-Xlint:deprecation' << "-Werror" diff --git a/src/main/java/org/bdware/sc/server/DoipLocalSingleton.java b/src/main/java/org/bdware/sc/server/DoipLocalSingleton.java index ff5b23b..073ba9e 100644 --- a/src/main/java/org/bdware/sc/server/DoipLocalSingleton.java +++ b/src/main/java/org/bdware/sc/server/DoipLocalSingleton.java @@ -82,22 +82,30 @@ public class DoipLocalSingleton { } if (config.routerURI != null && config.repoName != null) { AuditIrpClient irpClient = new AuditIrpClient(config); - EndpointInfo endpointInfo = irpClient.getEndpointInfo(); - repoID = endpointInfo.getDoId(); - owner = endpointInfo.getPubKey(); - infos.clear(); + EndpointInfo endpointInfo = null; + for (int i = 0; i < 10; i++) { + endpointInfo = irpClient.getEndpointInfo(); + if (endpointInfo == null) Thread.sleep(200); + } + if (endpointInfo != null) { + repoID = endpointInfo.getDoId(); + owner = endpointInfo.getPubKey(); + infos.clear(); + } infos.add(new DoipListenerConfig(endpointInfo.getURI(), "2.1")); port = new URI(endpointInfo.getURI()).getPort(); SharableVarManager.initSharableVarManager(repoID, config); } } // 如果启动参数中添加了 doipStartPort 参数,使用该参数作为启动端口 - if (otherConfigs != null && otherConfigs.isJsonObject() && otherConfigs.getAsJsonObject().has("doipStartPort") && infos.size() == 1) { + if (otherConfigs != null && otherConfigs.isJsonObject() + && otherConfigs.getAsJsonObject().has("doipStartPort") && infos.size() == 1) { int doipStartPort = otherConfigs.getAsJsonObject().get("doipStartPort").getAsInt(); // 如果当前启动的端口和指定的端口不一致,修改启动端口 if (doipStartPort != port) { - infos.get(0).url = infos.get(0).url.replace(String.valueOf(port), String.valueOf(doipStartPort)); - port = doipStartPort; + infos.get(0).url = infos.get(0).url.replace(String.valueOf(port), + String.valueOf(doipStartPort)); + port = doipStartPort; } }