apache / apache/rocketmq

[Bug] SimpleChannel should tolerate malformed socket address ports

Open Beginner friendly
#10,690 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.