apache/pulsar · error · TypeConversionException

e.getMessage()

Error message

e.getMessage()

What it means

TimeUnitToMillisConverter.convert wraps parseRelativeTimeInSeconds failures into picocli's TypeConversionException, forwarding the original error message (e.getMessage()) when the CLI time value is invalid.

Source

Thrown at pulsar-cli-utils/src/main/java/org/apache/pulsar/cli/converters/picocli/TimeUnitToMillisConverter.java:32

 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.pulsar.cli.converters.picocli;

import java.util.concurrent.TimeUnit;
import org.apache.pulsar.cli.converters.RelativeTimeUtil;
import picocli.CommandLine.ITypeConverter;
import picocli.CommandLine.TypeConversionException;

public class TimeUnitToMillisConverter implements ITypeConverter<Long> {
    @Override
    public Long convert(String value) throws Exception {
        try {
            return TimeUnit.SECONDS.toMillis(RelativeTimeUtil.parseRelativeTimeInSeconds(value));
        } catch (Exception e) {
            throw new TypeConversionException(e.getMessage());
        }
    }
}

View on GitHub (pinned to 820761864e)

Solutions

  1. Use a valid relative time like 30s, 5m, 1h with supported unit suffixes
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at pulsar-cli-utils/src/main/java/org/apache/pulsar/cli/converters/picocli/TimeUnitToMillisConverter.java:32 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/pulsar@820761864e (2026-09-06). Data as JSON: /api/errors/9a287bdf15edb39d. Report an issue: GitHub.