Skip to content

fix(deployer): Xlint batch 1 — real generics + easy wins (#2028) - #2418

Merged
natechadwick merged 2 commits into
mainfrom
fix/issue-2028-deployer-xlint-batch1
Aug 8, 2026
Merged

natechadwick merged 2 commits into
mainfrom
fix/issue-2028-deployer-xlint-batch1

Conversation

@natechadwick-intsof

Copy link
Copy Markdown
Collaborator

Summary

Partial Xlint cleanup for perc-deployer (issue #2028, parent tracker #2200). First PR-sized batch prefers real generics and mechanical easy wins over blanket suppressions.

Main changes

  • PSDependency: Comparable<PSDependency>, typed setDependencies / tree helpers (List/Iterator/TreeSet diamond), remove raw casts in walkers
  • PSArchiveSummary / PSExportDescriptor / PSArchiveDetail / PSIdMap: typed package/iterator/set APIs
  • PSDeploymentHandler: request roots Collection<String>/Iterator<String>, IdTypes iterators, parent type map, reflection Class/Constructor typing, Long.valueOf/Boolean.valueOf for-removal
  • PSLogHandler: remove redundant casts once iterators are typed; Iterator<? extends PSDependency> for package rows
  • Catalog: static PSXmlTreeWalker.getElementData qualification; drop redundant String/Integer casts

Tests

  • PSDependencyTest.testCompareToOrdersByDisplayIdentifier
  • PSArchiveSummaryTest.testGetPackageType
  • PSArchiveTest package iterator typing for Iterator<PSDeployableElement>

Residual

Remaining diagnostics tracked in #2417 (full module still has many warnings under uncapped -Xmaxwarns; default Maven reports cap at 100 per compile/testCompile phase).

Test plan

  • cd deployer && ../mvnw.cmd clean install — BUILD SUCCESS
  • Tests run: 176, Failures: 0, Errors: 0, Skipped: 19
  • No new production behavior beyond type-safe API surfaces already used with raw types

Gates

  • Erlang-style self-review: real generics preferred; portable paths N/A (no path I/O changes)
  • Pre-PR Maven: standalone module clean install green
  • Operator: Grok: night-issue-prs (model grok-4.5)

Partial for #2028
Refs #2200
Residual: #2417

Co-Authored by Grok Build using grok-4.5 with agent main.

Partial clear of perc-deployer javac Xlint diagnostics (parent #2200):
- PSDependency: Comparable<PSDependency>, typed Set/List/Iterator helpers
- PSArchiveSummary/ExportDescriptor/ArchiveDetail/IdMap package+iterator types
- PSDeploymentHandler request roots, IdTypes, reflection, parent map generics
- PSLogHandler redundant cast removal; valueOf for Long/Boolean for-removal
- Catalog: static PSXmlTreeWalker.getElementData; drop redundant casts

Tests: PSDependencyTest.compareTo, PSArchiveSummaryTest.getPackageType;
PSArchiveTest package iterator typing.

Standalone: cd deployer && ../mvnw clean install (176 tests, 0 failures).

Partial for #2028
Refs #2200

> Co-Authored by Grok Build using grok-4.5 with agent main.
Comment thread deployer/src/main/java/com/percussion/deployer/objectstore/PSDependency.java Outdated
@kilo-code-bot

kilo-code-bot Bot commented Aug 8, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 0
Files Reviewed (2 files)
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSDependency.java - exception message fixed, no new issues
  • deployer/src/test/java/com/percussion/deployer/objectstore/PSDependencyTest.java - null-check and cross-subclass TreeSet tests added
Previous Review Summary (commit 4aba1bc)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 4aba1bc)

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
deployer/src/main/java/com/percussion/deployer/objectstore/PSDependency.java 45 Changing Comparable to Comparable<PSDependency> and compareTo(Object) to compareTo(PSDependency) alters dispatch semantics for any subclass that overrides compareTo(Object) — the override is bypassed by callers recompiled against the new signature because compareTo(PSDependency) does not override compareTo(Object).

SUGGESTION

File Line Issue
deployer/src/main/java/com/percussion/deployer/objectstore/PSDependency.java 780 compareTo parameter was renamed from obj to dep, but the exception message still references "obj" — update the message to match the parameter name.
Files Reviewed (13 files)
  • deployer/src/main/java/com/percussion/deployer/catalog/PSCatalogResult.java - safe static qualification
  • deployer/src/main/java/com/percussion/deployer/catalog/PSCatalogResultColumn.java - safe cast removals
  • deployer/src/main/java/com/percussion/deployer/catalog/server/PSCatalogHandler.java - safe static qualification and cast removals
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSArchiveDetail.java - safe return type typing
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSArchiveSummary.java - safe generics cleanup
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSDependency.java - 2 issues found
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSExportDescriptor.java - safe generics cleanup
  • deployer/src/main/java/com/percussion/deployer/objectstore/PSIdMap.java - safe generics cleanup
  • deployer/src/main/java/com/percussion/deployer/server/PSDeploymentHandler.java - safe generics and reflection typing
  • deployer/src/main/java/com/percussion/deployer/server/PSLogHandler.java - safe cast removals
  • deployer/src/test/java/com/percussion/deployer/objectstore/PSArchiveSummaryTest.java - test added, consider null-case coverage
  • deployer/src/test/java/com/percussion/deployer/objectstore/PSArchiveTest.java - safe type alignment
  • deployer/src/test/java/com/percussion/deployer/objectstore/PSDependencyTest.java - test added, consider null-case coverage for compareTo

Fix these issues in Kilo Cloud


Reviewed by step-3.7-flash · Input: 101.9K · Output: 10.6K · Cached: 294.3K

Review guidance: REVIEW.md from base branch main

…2028)

- Align null-arg IllegalArgumentException message with param name `dep`
- Extend unit tests for cross-subclass compareTo + TreeSet ordering
- Confirms no PSDependency subclass overrides compareTo(Object)

> Co-Authored by Grok 1.0.0 (3cd0d0cbce) using grok-4-1-thinking-maximum-thinking-effort with agent overnight-pr-followup.
@natechadwick-intsof

Copy link
Copy Markdown
Collaborator Author

Overnight follow-up: addressed 2 Kilo review threads on PSDependency Comparable typing (commit cf3345c03e). cd deployer && ../mvnw clean install — BUILD SUCCESS (Tests run: 177, Failures: 0).

Co-Authored by Grok 1.0.0 (3cd0d0cbce) using grok-4-1-thinking-maximum-thinking-effort with agent overnight-pr-followup.

@natechadwick
natechadwick merged commit 3e5aee3 into main Aug 8, 2026
6 checks passed
@natechadwick
natechadwick deleted the fix/issue-2028-deployer-xlint-batch1 branch August 8, 2026 19:02
natechadwick pushed a commit that referenced this pull request Aug 10, 2026
…import (#2417) (#2698)

Continue perc-deployer main-source Xlint cleanup after batch 1 (#2418 / #2028).
Prefer real generics over suppressions on preferred objectstore/server paths:

- PSApplicationIDTypes: parameterize maps/lists/iterators and choice filters
- PSDeployableObject: List/Iterator of String required classes; fix fromXml
  RequiredClasses restore; static PSXmlTreeWalker.getElementData
- PSDbmsHelper: PSEntrySet and Iterator typing; schema/enumeration generics
- PSImportCtx: Set of String for installed package deps
- PSDataObjectDependencyHandler call-site cleanup

Tests: choice filters/copyFrom, required classes, filter-in, import-ctx tracking.
Module clean install green (183 tests).

Partial for #2417
Refs #2028 #2200

> Co-Authored by Grok Build using grok-4.5 with agent main.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.5 Grok 4.5 model operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants