This is an automated email from the ASF dual-hosted git repository.
schofielaj pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new 8b955b54da9 MINOR: Wrapping exceptions in usage for groups and metrics
utility (#19151)
8b955b54da9 is described below
commit 8b955b54da9f9577ee0b8784807635dda477fcf4
Author: Apoorv Mittal <[email protected]>
AuthorDate: Fri Mar 7 16:30:16 2025 +0000
MINOR: Wrapping exceptions in usage for groups and metrics utility (#19151)
If specified an invalid option then an exception trace appears with
`kafka-client-metrics.sh` and `kafka-groups.sh` utilities. Then once has
to explicitly remove the invalid argument and append `--help` to fetch
correct options. The PR fixes below error message to one with `cause`
and `usage`. This behaviour is similar to `kafka-console-consumer.sh`
and `kafka-console-share-consumer.sh`
Reviewers: Andrew Schofield <[email protected]>
---
.../src/main/java/org/apache/kafka/tools/ClientMetricsCommand.java | 7 ++++++-
tools/src/main/java/org/apache/kafka/tools/GroupsCommand.java | 7 ++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git
a/tools/src/main/java/org/apache/kafka/tools/ClientMetricsCommand.java
b/tools/src/main/java/org/apache/kafka/tools/ClientMetricsCommand.java
index 58c187ba50a..1010184eb01 100644
--- a/tools/src/main/java/org/apache/kafka/tools/ClientMetricsCommand.java
+++ b/tools/src/main/java/org/apache/kafka/tools/ClientMetricsCommand.java
@@ -49,6 +49,7 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import joptsimple.ArgumentAcceptingOptionSpec;
+import joptsimple.OptionException;
import joptsimple.OptionSpec;
import joptsimple.OptionSpecBuilder;
@@ -260,7 +261,11 @@ public class ClientMetricsCommand {
.ofType(String.class)
.withValuesSeparatedBy(',');
- options = parser.parse(args);
+ try {
+ options = parser.parse(args);
+ } catch (OptionException oe) {
+ CommandLineUtils.printUsageAndExit(parser, oe.getMessage());
+ }
checkArgs();
}
diff --git a/tools/src/main/java/org/apache/kafka/tools/GroupsCommand.java
b/tools/src/main/java/org/apache/kafka/tools/GroupsCommand.java
index 8f5046d6b8a..ec99a9e4c65 100644
--- a/tools/src/main/java/org/apache/kafka/tools/GroupsCommand.java
+++ b/tools/src/main/java/org/apache/kafka/tools/GroupsCommand.java
@@ -40,6 +40,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
import joptsimple.ArgumentAcceptingOptionSpec;
+import joptsimple.OptionException;
import joptsimple.OptionSpec;
import joptsimple.OptionSpecBuilder;
@@ -217,7 +218,11 @@ public class GroupsCommand {
+ "This matches group type 'consumer', and group
type 'classic' where the protocol type is 'consumer' or empty.");
shareOpt = parser.accepts("share", "Filter the groups to show
share groups.");
- options = parser.parse(args);
+ try {
+ options = parser.parse(args);
+ } catch (OptionException oe) {
+ CommandLineUtils.printUsageAndExit(parser, oe.getMessage());
+ }
checkArgs();
}