Detect ip:port with contains in NetUtils.matchIpExpression#16358
Detect ip:port with contains in NetUtils.matchIpExpression#16358vasiliy-mikhailov wants to merge 1 commit into
Conversation
The deprecated two-arg matchIpExpression used address.endsWith(":") to detect the ip:port format, but a real address like 192.168.1.63:90 ends with the port, not a colon, so the host/port split was skipped and matching failed. Use contains(":") to detect the separator.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## 3.3 #16358 +/- ##
============================================
- Coverage 60.80% 60.76% -0.04%
- Complexity 15 11766 +11751
============================================
Files 1953 1953
Lines 89208 89197 -11
Branches 13458 13375 -83
============================================
- Hits 54245 54205 -40
+ Misses 29397 29376 -21
- Partials 5566 5616 +50
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
The single failing check (Unit Test, Java 8) is |
The deprecated two-arg
matchIpExpression(pattern, address)usesaddress.endsWith(":")to detect theip:portformat. A real address such as192.168.1.63:90ends with the port, not a colon, so the host/port split is skipped — the fullhost:portstring is then used as the host and matching fails. Usecontains(":")to detect the separator.Added a test covering
ip:portaddresses against patterns with and without a port.Verifying this change
The added
NetUtilsTest#testMatchIpExpressionDeprecatedTwoArgsWithIpPortfails before this change and passes after:Before the fix:
After the fix:
AI assistance disclosure
This contribution was produced with the help of an AI pipeline. The pipeline processed a large amount of source code to surface suspected bugs, reproduced a subset of them with failing unit tests and generated candidate fixes, and prepared pull requests from the ones that held up. Each PR was then reviewed and verified by a human before being opened: the fix and test were checked by hand and the test was confirmed to fail before the change and pass after.