fatmanverse commented on PR #12922:
URL: https://github.com/apache/seatunnel/pull/12922#issuecomment-6309090856

   Thanks @DanielLeens for the review. All three points are addressed in 
c7a0742:
   
   1. **Compatibility note (Issue 1):** added a "Zeta REST API: `/submit-jobs` 
uses `params` values as given" entry to `incompatible-changes.md` (en/zh). Old 
behavior: values were joined into an un-encoded query string and URL-decoded. 
New behavior: values are used verbatim. Migration: drop any client-side 
percent-encoding (`sales%26ops` is now taken literally). The entry also notes 
that `null` values are skipped, that a non-object `params` returns 400, and 
that numbers and empty strings are accepted, and that `/submit-job` still 
URL-decodes its query string. The Batch Submit Jobs section of `rest-api-v2.md` 
now says that `params` may be omitted and that its values are not URL-decoded. 
I added the same sentence to `rest-api-v1.md`, because 
`/hazelcast/rest/maps/submit-jobs` goes through the same `submitJobs` path.
   2. **Service-level test (Issue 2):** new `JobInfoServiceSubmitJobsTest` 
drives `JobInfoService#submitJobs` with `submitJobInternal` stubbed out. It 
covers an entry without `params` next to one with `"jobName": 
"sales&ops%20daily"`, which reproduces the NPE and the mangled name when the 
fix is reverted. It also covers a savepoint request without `jobId`, and a 
non-object `params` that is rejected before anything is submitted.
   3. **String overload Javadoc (Issue 3):** `buildRequestParams(Map, String)` 
now says that it parses the v1 `submit-job` query string and URL-decodes it, 
unlike the `params` values read by `buildRequestParams(Map, Map)`.
   
   Verified on JDK 17: `JobInfoServiceSubmitJobsTest` (3), 
`RestUtilSubmitJobsParamsTest` (6), and 
`RestApiSubmitJobStartWithSavePointTest` (7) all pass, and spotless is clean.
   
   The current red `Build` is from `dev`, not from this change. `unit-test` 
fails in `LLMBooleanOutputTest.readsLegacyFactoryWrapperWithValidationDisabled` 
(#12929), and the failing IT lanes all stop at `PreconditionViolationException: 
None of the supporting TestTemplateInvocationContextProviders ...` before any 
test body runs. I will re-run the failed jobs once `dev` is fixed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to