diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index f9a42d48..aeb68351 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -32,14 +32,15 @@ jobs: strategy: matrix: - java-version: [8, 11] - + java-version: [8, 11, 17, 21] + fail-fast: false steps: - uses: actions/checkout@v2 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java-version }} + distribution: 'temurin' - name: Build with Maven run: ./mvnw clean install -Dmaven.test.skip=true -B -U -e && bash ./.middleware-common/check_format.sh - name: Test with Maven diff --git a/pom.xml b/pom.xml index 4fecc828..01ea5353 100644 --- a/pom.xml +++ b/pom.xml @@ -80,9 +80,10 @@ 2.9.1 3.0.0 1.6.7 + + 2.18.1 4.1.42.Final - UTF-8 1.7.21 1.4.0 @@ -198,7 +199,6 @@ ${project.encoding} - com.googlecode.maven-java-formatter-plugin maven-java-formatter-plugin @@ -276,6 +276,8 @@ maven-surefire-plugin ${maven.surefire.plugin} + ${maven.surefire.argLine} + ${maven.surefire.excludes} **/*Test.java @@ -447,5 +449,22 @@ + + args-for-test-by-jdk17-and-above + + [17,) + + + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/java.net=ALL-UNNAMED + --add-opens java.base/java.math=ALL-UNNAMED + --add-opens java.base/java.text=ALL-UNNAMED + --add-opens java.base/java.util=ALL-UNNAMED + --add-opens java.base/java.util.regex=ALL-UNNAMED + --add-opens java.base/java.util.concurrent=ALL-UNNAMED + --add-opens java.sql/java.sql=ALL-UNNAMED + --add-opens java.sql.rowset/javax.sql.rowset.serial=ALL-UNNAMED + + diff --git a/src/main/java/com/alipay/remoting/util/RemotingUtil.java b/src/main/java/com/alipay/remoting/util/RemotingUtil.java index 2b658686..b172afb2 100644 --- a/src/main/java/com/alipay/remoting/util/RemotingUtil.java +++ b/src/main/java/com/alipay/remoting/util/RemotingUtil.java @@ -193,16 +193,23 @@ private static String doParse(String addr) { if (StringUtils.isBlank(addr)) { return StringUtils.EMPTY; } - if (addr.charAt(0) == '/') { - return addr.substring(1); - } else { - int len = addr.length(); - for (int i = 1; i < len; ++i) { - if (addr.charAt(i) == '/') { - return addr.substring(i + 1); + // Find the first and second '/' positions + int firstSlash = addr.indexOf('/'); + int secondSlash = addr.indexOf('/', firstSlash + 1); + if (firstSlash != -1) { + if (secondSlash != -1) { + // Extract the IP address and port + String ip = addr.substring(firstSlash + 1, secondSlash); + String port = addr.substring(secondSlash + 1); + if (port.contains(":")) { + port = port.split(":")[1]; } + return ip + ":" + port; + } else { + // Only one slash, return the part after the slash + return addr.substring(firstSlash + 1); } - return addr; } + return addr; } }