Skip to content

[Bug] Flink action factories do not report which required argument is missing #9058

Description

@thswlsqls

Search before asking

  • I searched in the issues and found nothing similar.

Paimon version
master @ b15bda5 (2.1-SNAPSHOT)

Compute Engine
Flink

Minimal reproduce step
Run an action jar and omit one required argument:

flink run paimon-flink-action-*.jar create_tag_from_timestamp \
  --warehouse <wh> --database d --table t --tag tg      # --timestamp omitted

Four required arguments are read with params.get(...) and dereferenced immediately, instead of params.getRequired(...) used by every sibling argument in the same methods:

  • MergeIntoActionFactory.create() line 83 — merge_actions
  • CreateTagFromTimestampActionFactory.create() line 41 — timestamp
  • CreateTagFromWatermarkActionFactory.create() lines 42, 43 — tag, watermark

What doesn't meet your expectations?
Expected: Argument 'timestamp' is required. Run '<action> --help' for more information., as produced by MultipleParameterToolAdapter.getRequired() and by DropPartitionActionFactory/MarkPartitionDoneActionFactory.
Actual: a bare java.lang.NumberFormatException: null (timestamp, watermark) or java.lang.NullPointerException (merge_actions), neither of which names the missing argument.

Anything else?
Same class of defect as #8611, which fixed only the migrate_* factories.

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions