Bonjour,
J'utilise une WeakHashMap pour stocker mes items de liste JList, et il arrive, à de rares occasions, de me retrouver devant un NullPointerException, que j'aimerais éviter.
Voici le code incriminé (la classe est un ListCellRenderer) :
Pour moi le WeakHashMap a déréférencé un élément au mauvais moment. Lorsque j'actualise ma liste, je vide bien sûr ma variable renderer, mais je ne pense pas qu'il s'agisse d'un problème de synchronisation à ce niveau.
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 private WeakHashMap<Integer, Item> renderer = new WeakHashMap<Integer, Item>(); ... public Component getListCellRendererComponent(JList list, Object value, int index, boolean selected, boolean cellHasFocus) { ... if (value instanceof Employee) { if (renderer.get(index)==null) { renderer.put(index), new Item((Employee)value, false, selected)); } Item item = renderer.get(index); // Le NullPointerException a lieu à la ligne suivante : item.setEmployee((Employee)value); ... return item; } ... }
Qu'en pensez-vous ? Je ne vois pas comment protéger ma liste à ce niveau.
En vous remerciant.
Partager