[Bug] SimpleChannel should tolerate malformed socket address ports
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 27
Description
### Bug description
`SimpleChannel.parseSocketAddress` returns `null` for empty addresses or strings that do not split into `host:port`, but it directly calls `Integer.parseInt(segments[1])` when the input has two segments.
For malformed values such as `127.0.0.1:not-a-port`, calling `remoteAddress()` or `localAddress()` on `SimpleChannel` throws `NumberFormatException` instead of treating the address as invalid.
`SimpleChannel` is used by the proxy to adapt request contexts into lightweight Netty channels for local/remoting processing. A malformed address string should not make address access throw unexpectedly.
### Expected behavior
`SimpleChannel` should tolerate malformed port values and return `null` for invalid socket address strings, consistent with how it already handles blank and non-`host:port` values.
### Affected area
`proxy` module, internal `SimpleChannel` address parsing.
### Suggested fix
- Catch invalid port parsing in `parseSocketAddress`.
- Return `null` for malformed port values.
- Add unit tests for valid addresses, blank/missing-port values, and non-numeric port values.
Contributor guide
Research direction
Start in the proxy module by locating SimpleChannel and its parseSocketAddress method. Read how remoteAddress() and localAddress() use the parser, then run or add unit tests covering valid addresses, blank or missing-port values, and non-numeric ports. Done means malformed socket addresses return null without throwing while valid addresses still parse correctly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100