Repository navigation
fix(publish): unapprove one incremental queue item (#4913) - #4931
Conversation
Confirm runs the Reject transition for that queued content id only and reloads the list. Cancel writes nothing. HTTP 400, 403, and 404 stay on the Publishing shell. > Co-Authored by Grok Build 1.0.41 using grok-4.6 with agent night-issue-prs.
> Co-Authored by Grok Build 1.0.41 using grok-4.6 with agent night-issue-prs.
| sitePublishService.unapproveQueuedIncrementalContent(siteName, serverName, contentId); | ||
| return Response.noContent().build(); | ||
| } catch (PSIncrementalQueueStatusException e) { | ||
| return Response.status(e.status()).entity(e.getMessage()).type(MediaType.TEXT_PLAIN).build(); |
There was a problem hiding this comment.
Mitigation (commit 489915f53c0ddaa4c105b53d8dbd6b402c42e99c): unapproveQueuedIncrementalContent no longer puts e.getMessage() on the HTTP entity. Status 400/403/404 return a fixed phrase (unapproveClientMessage); the real failure is logged server-side. A PSSitePublishException on this method becomes HTTP 500 without the exception text. Covered by PSSitePublishServiceWebAdapterUnapproveQueueItemTest (sitemanage clean install -DskipITs: Tests run: 3143, Failures: 0).
There was a problem hiding this comment.
Correction: PR #4931 was already merged at 8da61d5aff7a29f08538a72619eafee66d4a9271 (2026-09-26T11:33:19Z) and the head ref was deleted before 489915f53c was pushed. That commit is not in the merge and not on main. The unapprove handler on main still returns e.getMessage(). This thread is left open because the mitigation did not ship. No follow-up PR was opened in this pass.
Record the mkd-code-review advisory pass (0 in-diff bugs) before merge. > Co-Authored by Grok Build 1.0.41 using grok-4.6 with agent night-issue-prs-erlang.
|
LGTM. Same-login APPROVE is rejected, so this is the review record. Independent Erlang pass on 78ef69b: mkd-code-review advisory, 0 in-diff bugs. Preexisting
|
Summary
PublishingShell can remove approval from one incremental-queue item that is already approved. Confirm calls
POST …/incremental/content/{site}/{server}/{contentId}/unapprove, which runs the Reject workflow transition for that content id only and leaves the row queued. The list reloads and that row drops the Approved mark; other approved rows stay approved. Cancel does not call the server. HTTP 400, 403, and 404 stay on the panel and do not clear the badge.Parent: #4531. Fixes #4913.
Operator: Grok: night-issue-prs (model grok-4.6)
Test plan
PSSitePublishServiceUnapproveQueueItemTest— one id Rejects, sibling is not deleted from the queue, 400/403/404tests/publishing-incremental-queue-unapprove.spec.js(5 passed) on H2 QAProduct documentation
product-docs/8.2/admin/publishing.md(Unapprove on an approved incremental queue row)Maven / C3
IPSSitePublishService; onlyPSSitePublishServiceimplements it; no existing signature changed)cd projects/sitemanage && rtk mvn clean install -DskipITs— BUILD SUCCESS. Surefire aggregate Tests run: 3069, Failures: 0, Errors: 0, Skipped: 125.PSSitePublishServiceUnapproveQueueItemTestTests run: 6, Failures: 0.cd WebUI && rtk mvn clean install -DskipITs— BUILD SUCCESS. Surefire Tests run: 69, Failures: 0, Errors: 0, Skipped: 0.cd WebUI && rtk npm test -- src/test/ts/publishing/siteWorkspaceQueueList.test.tsx src/test/ts/publishing/incrementalQueue.test.ts— 25 passed (vitest is not bound to the WebUI Maven lifecycle).C5 UI proof
python3 docker/scripts/perc-devctl.py qa-up— TEST_CMS_URL=http://127.0.0.1:9993, container perc-matrix-cms-h2qa-healthRESULT:OK HEALTH:healthyqa-deploy-war-jars --restart-jetty(sitemanage + perc-system into Rhythmyx WEB-INF/lib) thenqa-healthhealthyqa-deploy-webuithenqa-healthhealthyTEST_CMS_URL=http://127.0.0.1:9993 ADMIN_USERNAME=Admin TEST_DB_TYPE=h2 TEST_PRODUCT=cms rtk npm run test:surface -- --path tests/publishing-incremental-queue-unapprove.spec.js— 5 passedPre-push local code review
Summary
Machine analysis found 9 finding(s), 0 bug(s).
Scope
Recommendation
approve
Gate
Issues
Issue 1 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 2 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 3 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 4 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 5 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 6 -- Severity: bug
paths.hardcoded_seppaths.hardcoded_sepIssue 7 -- Severity: suggestion
complexity.cognitivearborist-metricsstubQueueApiscognitive=20 (max 15), cyclomatic=13 (max 15)Issue 8 -- Severity: suggestion
complexity.cognitivearborist-metricsapproveQueuedIncrementalContentcognitive=15 (max 15), cyclomatic=16 (max 15)Issue 9 -- Severity: suggestion
complexity.cognitivearborist-metricsunapproveQueuedIncrementalContentcognitive=16 (max 15), cyclomatic=17 (max 15)