Je bosse depuis un moment avec Eclipse (3.1), et un problème que je n'avais jamais eu vient d'apparaître : les fonction de refactoring "rename" et "change method signature" ne veulent plus modifier les références vers les objets modifiés quand ils se trouvent dans d'autres projets.

Exemple :

Projet 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
package my.business.intr;
 
Interface MyInterface {
    void setObject(Object obj);
}
Projet 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
package my.business.impl;
 
Class MyClass implements MyInterface {
    public void setObject(Object obj) {
        // ...
    }
}
Projet 3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
package my.gui;
 
Interface MyGui {
    public static void main(String[] args) {
        MyClass instance = New MyClass();
        instance.setObject(new Object());
    }
}
Je me place sur la définition de la méthode setObject de MyClass, et je fais ALT+MAJ+R (parce que je maîtrise les raccourcis). Eclipse me prévient "'c'est une méthode d'une interface implémentée : voulez-vous refactorer la méthode de l'interface ?". Je réponds oui. Il me demande quel nouveau nom je veux donner et si, oui ou non, je veux mettre à jour les références. Je choisis un nom, je laisse cochée la case "update references" et je clique sur OK. Le résultat est immédiat : le nom de la méthode est bien changé dans l'interface mais pas dans les sous classes ou les appelants.

Du coup, ça limite beaucoup l'intérêt du refactor...

Ce problème ne survient que dans un seul workspace sur ma machine. J'ai un collègue à qui c'est arrivé sur seulement quelques projets dans un workspace.

Si quelqu'un a déjà subit ça ou sait comment le réparer, qu'il me fasse signe