Skip to content

Fix#9083 workflow action check() to read the real bean properties - #9085

Merged
hansva merged 1 commit into
apache:mainfrom
leehaut:hotfix/lance-common-47
Oct 22, 2026
Merged

hansva merged 1 commit into
apache:mainfrom
leehaut:hotfix/lance-common-47

Conversation

@leehaut

@leehaut leehaut commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Fix #9083

Action.check() resolves values through BeanUtils, using the JavaBean property name. It does not use the @HopMetadataProperty key, and the lookup is case-sensitive. Several actions passed a name that does not match the getter, so workflow verification reported a filled field as empty or skipped the check entirely. Execution was unaffected, because it reads the fields directly.

@HopMetadataProperty keys are unchanged, so existing workflows still load.

What changed

  • MySQL Bulk Load, MySQL Bulk File, and MSSQL Bulk Load now check fileName and tableName. "filename" was hitting ActionBase.getFilename(), which always returns null, so a configured file was reported blank and fileExists never ran. "tablename" does not match getTableName().
  • HTTP checks targetFilenameExtension. The old string targetFilenameExtention is not a property. The load fallback for the legacy tag targetfilename_extention is left in place.
  • Get POP checks sslPort. "SSLPort" never reached the field, so a non-integer port was accepted. A blank port still passes, because IntegerValidator allows blank.
  • Pipeline checks filename when the file name is empty. The repository-era names pipeline-name and directory are gone, and looking them up always failed verification.
  • XSLT checks xmlfilename, xslfilename, and outputfilename. The camelCase getters are commented out; Lombok exposes the lower-case names.

Test plan

  • ActionMysqlBulkLoadBlankFieldsTest and ActionMysqlBulkFileBlankFieldsTest: a set file name and table name produce no check() error.
  • ActionMssqlBulkLoadCheckTest: same for MSSQL Bulk Load, including fileExists on a real file.
  • ActionHttpTest: a set extension passes; a blank extension is reported as targetFilenameExtension, not targetFilenameExtention.
  • ActionGetPOPTest: sslPort=nope is reported as not an integer, and the message does not mention SSLPort.
  • ActionPipelineCheckTest: an empty file name fails on filename only. A set file name passes. pipeline-name and directory are not mentioned.
  • XsltCheckTest: existing XML and XSLT files plus an output path produce no check() error.
  • Load an existing workflow that uses these actions and confirm <filename>, <tablename>, and the other stored tags are unchanged.

Signed-off-by: leehaut <leehaut@gmail.com>
@hansva
hansva merged commit fd0b643 into apache:main Oct 22, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Workflow action check() validates the wrong JavaBean properties

3 participants