Skip to content

Commit 0feeffd

Browse files
Flossyclaude
andcommitted
fix: Add validation to JmsConfig.Builder.brokerUrl() (#183)
Added immediate validation in the brokerUrl() setter to provide clear error messages at the point of error instead of later during build(). Changes: - Validate brokerUrl is not null or empty/whitespace in setter - Throw IllegalArgumentException with clear message - Updated existing test to expect exception from setter - Added tests for empty and whitespace-only brokerUrl This provides: - Clear, immediate error messages - Better debugging experience - Fail-fast behavior - Consistent API with other builder classes Fixes #183: JmsConfig.Builder.brokerUrl() doesn't validate parameter is non-null/empty Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 41fd1db commit 0feeffd

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

jplatform-messaging-jms/src/main/java/org/flossware/jplatform/messaging/jms/JmsConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,12 @@ public static class Builder {
120120
*
121121
* @param brokerUrl the broker URL (e.g., "tcp://localhost:61616")
122122
* @return this builder
123+
* @throws IllegalArgumentException if brokerUrl is null or empty
123124
*/
124125
public Builder brokerUrl(String brokerUrl) {
126+
if (brokerUrl == null || brokerUrl.trim().isEmpty()) {
127+
throw new IllegalArgumentException("brokerUrl cannot be null or empty");
128+
}
125129
this.brokerUrl = brokerUrl;
126130
return this;
127131
}

jplatform-messaging-jms/src/test/java/org/flossware/jplatform/messaging/jms/JmsConfigTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,24 @@ void testBuilder_withDefaults() {
4646
void testBuilder_nullBrokerUrl() {
4747
JmsConfig.Builder builder = JmsConfig.builder();
4848

49-
assertThrows(NullPointerException.class, builder::build,
50-
"Should throw NullPointerException when brokerUrl is null");
49+
assertThrows(IllegalArgumentException.class, () -> builder.brokerUrl(null),
50+
"Should throw IllegalArgumentException when brokerUrl is null");
51+
}
52+
53+
@Test
54+
void testBuilder_emptyBrokerUrl() {
55+
JmsConfig.Builder builder = JmsConfig.builder();
56+
57+
assertThrows(IllegalArgumentException.class, () -> builder.brokerUrl(""),
58+
"Should throw IllegalArgumentException when brokerUrl is empty");
59+
}
60+
61+
@Test
62+
void testBuilder_whitespaceBrokerUrl() {
63+
JmsConfig.Builder builder = JmsConfig.builder();
64+
65+
assertThrows(IllegalArgumentException.class, () -> builder.brokerUrl(" "),
66+
"Should throw IllegalArgumentException when brokerUrl is whitespace");
5167
}
5268

5369
@Test

0 commit comments

Comments
 (0)