childCount:0 bei updateReferences=true sollte ERROR sein, nicht WARNING #34
Labels
No labels
bug
build
enhancement
headless
P1-critical
P2-high
P3-medium
P4-low
refactoring
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-tools/jdt-mcp-server#34
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Wenn ein Rename mit
updateReferences=truekeine einzige Referenz findet (childCount:0), meldet der CodeWARNINGstattERROR. Der Rename wird trotzdem als "performed" behandelt.Betroffener Code
RefactoringTools.javaZeilen 226-237Auswirkung
Silent no-op wird als teilerfolg gemeldet statt als Fehler. Der Aufrufer denkt der Rename hat funktioniert.
Vorgeschlagener Fix
Kontext
Identifiziert bei der Analyse von #26 durch Agent jdt-gamma (Erich Gamma).
Fix implementiert in
fix/43-refactoring-errors(Commit4d92161)renameViaAst()meldet jetztstatus: WARNINGstattSUCCESSwennupdateReferences=trueaber 0 Referenzen gefunden wurdenchildCount: 0enthält jetzt denupdateReferences-WertWartet auf Test-Validierung.
Fix vollständig — beide Pfade abgedeckt
Problem
Der Hauptpfad (Processor-basiertes Rename) lieferte
status: SUCCESSauch wenn keine Referenzen aktualisiert wurden. Ursache:childCountwurde vom Top-LevelCompositeChangegelesen, der immer 1 war (ein Wrapper-Knoten "Rename Type").Lösung
Neue Methode
countLeafChanges()zählt rekursiv die tatsächlichen Leaf-Changes (Datei-Modifikationen) im Change-Baum. BeiupdateReferences=trueundleafChangeCount <= 1wirdWARNINGstattSUCCESSzurückgegeben.Testergebnisse (alle 3 bestanden)
updateReferences=trueupdateReferences=trueupdateReferences=falseCommit:
b027a81auf Branchfix/43-refactoring-errors