findElement gibt erstes gefundenes Element zurück — Multi-Modul-Problem #33
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#33
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
findElement()iteriert über alle Projekte und gibt das erste gefundene Element zurück. Bei 29 Modulen gibt es keine Garantie, dass das zurückgegebene Element aus dem Projekt kommt, das die besten Classpath-Dependencies für die Referenz-Suche hat.Betroffener Code
RefactoringTools.javaZeilen 1731-1786Auswirkung
Vorgeschlagener Fix
Bevorzuge das Projekt, das die meisten abhängigen Projekte hat, oder nutze den Workspace-weiten Scope für die Referenz-Suche.
Kontext
Identifiziert bei der Analyse von #26 durch Agent jdt-gamma (Erich Gamma).
Fix implementiert in
fix/43-refactoring-errors(Commit3a988fb)Neue Methode
findTypeInSourceProject()bevorzugt non-binaryITypemitgetResource() != null— stellt sicher, dass Refactorings auf dem Quell-Projekt operieren, nicht auf einem zufälligen Classpath-Match.Ersetzt "first project wins" Iteration an 5 Stellen:
findElement()moveType()extractInterface()changeMethodSignature()encapsulateField()Wartet auf Test-Validierung.
findTypeInSourceProject()bevorzugt jetzt non-binary IType mitgetResource() != nullstatt "first project wins". Wird an allen relevanten Stellen verwendet (findElement, moveType, extractInterface, changeMethodSignature, encapsulateField). Fix in Branchfix/43-refactoring-errors, Commit3a988fb.