This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 60f5475 Improve exception info for invaild time-related option
(#12828)
60f5475 is described below
commit 60f5475740f129d02d3896b31bddf001b9ea6704
Author: Ruguo Yu <[email protected]>
AuthorDate: Wed Nov 17 16:52:05 2021 +0800
Improve exception info for invaild time-related option (#12828)
---
.../pulsar/utils/auth/tokens/TokensCliUtils.java | 10 ++++--
.../org/apache/pulsar/admin/cli/CmdNamespaces.java | 39 +++++++++++++++++++---
.../pulsar/admin/cli/CmdPersistentTopics.java | 10 ++++--
.../org/apache/pulsar/admin/cli/CmdTopics.java | 32 +++++++++++++++---
.../apache/pulsar/admin/cli/CmdTransactions.java | 9 +++--
5 files changed, 84 insertions(+), 16 deletions(-)
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
b/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
index c089fa0..47364bc 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/utils/auth/tokens/TokensCliUtils.java
@@ -22,6 +22,7 @@ import com.beust.jcommander.DefaultUsageFormatter;
import com.beust.jcommander.IUsageFormatter;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
+import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import com.google.common.base.Charsets;
import io.jsonwebtoken.Claims;
@@ -155,8 +156,13 @@ public class TokensCliUtils {
Optional<Date> optExpiryTime = Optional.empty();
if (expiryTime != null) {
- long relativeTimeMillis = TimeUnit.SECONDS
-
.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(expiryTime));
+ long relativeTimeMillis;
+ try {
+ relativeTimeMillis = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(expiryTime));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
optExpiryTime = Optional.of(new
Date(System.currentTimeMillis() + relativeTimeMillis));
}
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
index 3d73ae9..e87e753 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdNamespaces.java
@@ -720,7 +720,12 @@ public class CmdNamespaces extends CmdBase {
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
long sizeLimit = validateSizeString(limitStr);
- long retentionTimeInSec =
RelativeTimeUtil.parseRelativeTimeInSeconds(retentionTimeStr);
+ long retentionTimeInSec;
+ try {
+ retentionTimeInSec =
RelativeTimeUtil.parseRelativeTimeInSeconds(retentionTimeStr);
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
final int retentionTimeInMin;
if (retentionTimeInSec != -1) {
@@ -1449,7 +1454,13 @@ public class CmdNamespaces extends CmdBase {
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
- long maxInactiveDurationInSeconds =
TimeUnit.SECONDS.toSeconds(RelativeTimeUtil.parseRelativeTimeInSeconds(deleteInactiveTopicsMaxInactiveDuration));
+ long maxInactiveDurationInSeconds;
+ try {
+ maxInactiveDurationInSeconds = TimeUnit.SECONDS.toSeconds(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(deleteInactiveTopicsMaxInactiveDuration));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (enableDeleteWhileInactive == disableDeleteWhileInactive) {
throw new ParameterException("Need to specify either
enable-delete-while-inactive or disable-delete-while-inactive");
@@ -1482,7 +1493,13 @@ public class CmdNamespaces extends CmdBase {
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
- long delayedDeliveryTimeInMills =
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(delayedDeliveryTimeStr));
+ long delayedDeliveryTimeInMills;
+ try {
+ delayedDeliveryTimeInMills = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(delayedDeliveryTimeStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (enable == disable) {
throw new ParameterException("Need to specify either --enable
or --disable");
@@ -1864,7 +1881,13 @@ public class CmdNamespaces extends CmdBase {
@Override
void run() throws PulsarAdminException {
String namespace = validateNamespace(params);
- getAdmin().namespaces().setOffloadDeleteLag(namespace,
RelativeTimeUtil.parseRelativeTimeInSeconds(lag),
+ long lagInSec;
+ try {
+ lagInSec = RelativeTimeUtil.parseRelativeTimeInSeconds(lag);
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
+ getAdmin().namespaces().setOffloadDeleteLag(namespace, lagInSec,
TimeUnit.SECONDS);
}
}
@@ -2196,7 +2219,13 @@ public class CmdNamespaces extends CmdBase {
Long offloadAfterElapsedInMillis =
OffloadPoliciesImpl.DEFAULT_OFFLOAD_DELETION_LAG_IN_MILLIS;
if (StringUtils.isNotEmpty(offloadAfterElapsedStr)) {
- Long offloadAfterElapsed =
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(offloadAfterElapsedStr));
+ Long offloadAfterElapsed;
+ try {
+ offloadAfterElapsed = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(offloadAfterElapsedStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (positiveCheck("OffloadAfterElapsed", offloadAfterElapsed)
&& maxValueCheck("OffloadAfterElapsed",
offloadAfterElapsed, Long.MAX_VALUE)) {
offloadAfterElapsedInMillis = offloadAfterElapsed;
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
index 42e9e4a..28f78f5 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdPersistentTopics.java
@@ -20,6 +20,7 @@ package org.apache.pulsar.admin.cli;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import com.beust.jcommander.Parameter;
+import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -527,8 +528,13 @@ public class CmdPersistentTopics extends CmdBase {
MessageId messageId =
validateMessageIdString(resetMessageIdStr);
getPersistentTopics().resetCursor(persistentTopic, subName,
messageId);
} else if (isNotBlank(resetTimeStr)) {
- long resetTimeInMillis = TimeUnit.SECONDS
-
.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(resetTimeStr));
+ long resetTimeInMillis;
+ try {
+ resetTimeInMillis = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(resetTimeStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
// now - go back time
long timestamp = System.currentTimeMillis() -
resetTimeInMillis;
getPersistentTopics().resetCursor(persistentTopic, subName,
timestamp);
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
index ece4d3e..9ecda2d 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
@@ -804,8 +804,13 @@ public class CmdTopics extends CmdBase {
getTopics().resetCursor(persistentTopic, subName,
messageId);
}
} else if (isNotBlank(resetTimeStr)) {
- long resetTimeInMillis = TimeUnit.SECONDS
-
.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(resetTimeStr));
+ long resetTimeInMillis;
+ try {
+ resetTimeInMillis = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(resetTimeStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
// now - go back time
long timestamp = System.currentTimeMillis() -
resetTimeInMillis;
getTopics().resetCursor(persistentTopic, subName, timestamp);
@@ -1336,7 +1341,13 @@ public class CmdTopics extends CmdBase {
@Override
void run() throws PulsarAdminException {
String topicName = validateTopicName(params);
- long delayedDeliveryTimeInMills =
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(delayedDeliveryTimeStr));
+ long delayedDeliveryTimeInMills;
+ try {
+ delayedDeliveryTimeInMills = TimeUnit.SECONDS.toMillis(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(delayedDeliveryTimeStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (enable == disable) {
throw new ParameterException("Need to specify either --enable
or --disable");
@@ -1486,7 +1497,12 @@ public class CmdTopics extends CmdBase {
void run() throws PulsarAdminException {
String persistentTopic = validatePersistentTopic(params);
long sizeLimit = validateSizeString(limitStr);
- long retentionTimeInSec =
RelativeTimeUtil.parseRelativeTimeInSeconds(retentionTimeStr);
+ long retentionTimeInSec;
+ try {
+ retentionTimeInSec =
RelativeTimeUtil.parseRelativeTimeInSeconds(retentionTimeStr);
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
final int retentionTimeInMin;
if (retentionTimeInSec != -1) {
@@ -2352,7 +2368,13 @@ public class CmdTopics extends CmdBase {
@Override
void run() throws PulsarAdminException {
String persistentTopic = validatePersistentTopic(params);
- long maxInactiveDurationInSeconds =
TimeUnit.SECONDS.toSeconds(RelativeTimeUtil.parseRelativeTimeInSeconds(deleteInactiveTopicsMaxInactiveDuration));
+ long maxInactiveDurationInSeconds;
+ try {
+ maxInactiveDurationInSeconds = TimeUnit.SECONDS.toSeconds(
+
RelativeTimeUtil.parseRelativeTimeInSeconds(deleteInactiveTopicsMaxInactiveDuration));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (enableDeleteWhileInactive == disableDeleteWhileInactive) {
throw new ParameterException("Need to specify either
enable-delete-while-inactive or disable-delete-while-inactive");
diff --git
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
index 7faf006..e695381 100644
---
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
+++
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTransactions.java
@@ -19,6 +19,7 @@
package org.apache.pulsar.admin.cli;
import com.beust.jcommander.Parameter;
+import com.beust.jcommander.ParameterException;
import com.beust.jcommander.Parameters;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
@@ -133,8 +134,12 @@ public class CmdTransactions extends CmdBase {
@Override
void run() throws Exception {
- long timeout =
-
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(timeoutStr));
+ long timeout;
+ try {
+ timeout =
TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(timeoutStr));
+ } catch (IllegalArgumentException exception) {
+ throw new ParameterException(exception.getMessage());
+ }
if (coordinatorId != null) {
print(getAdmin().transactions().getSlowTransactionsByCoordinatorId(coordinatorId,
timeout, TimeUnit.MILLISECONDS));