Bonjour,
Cela fait une bonne semaine que je me casse la tête à essayer de comprendre pourquoi j'ai des memory leaks sur des items de liste. Après recherches par JProbe et sur le net, j'en ai conclu que ça pouvait 'aussi' venir d'un bug de la jdk, mais qui a priori serait corrigé dans la 6.
Il s'agirait d'un problème sur les CellRendererPane, contenus dans les JList et les JComboBox qui ne relâche pas les composants qu'il contient à la destruction de l'objet.
Il existe alors un code permettant de palier au problème, quelque chose dans se goût là (cf. http://bugs.sun.com/bugdatabase/view...bug_id=6542439) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 private CellRendererPane getRenderer() { if (cellRendererPane == null) { for (int i=0; i<getComponents().length; i++) { java.awt.Component c = getComponents()[i]; if (c instanceof CellRendererPane) { cellRendererPane = (CellRendererPane)c; break; } } } return cellRendererPane; } protected void paintComponent(java.awt.Graphics g) { super.paintComponent(g); CellRendererPane renderer = getRenderer(); if (renderer != null) renderer.removeAll(); }
Bon jusque là tout va bien. Sauf que je fais des tests avec JProbe, et que je me retrouve avec toujours le même soucis, à savoir que mes items sont toujours chargés, même une fois que la fenêtre contenant la liste les contenant est fermée.
Je vous envoie une copie d'écran de la trace que me renvoit JProbe.
Est-ce que vous pouvez déjà me confirmer qu'il s'agit bien d'un soucis lié au bug décrit ci-dessus ? Enfin, j'aimerais comprendre pourquoi mes items ne sont pas déchargés (IHMItemFavori).
En vous remerciant infiniment, vous me retireriez une bonne épine du pied !
Partager