HashMap en multi-thread et NullPointerException ; comment est-ce possible ?
Bonjour,
J'ai une méthode rechercherAssiette() appelée par plusieurs threads,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| classe Gpc {
private Map<String, Map<String, Map<Boolean, ResultatUnitaireNonType>>> listeAssietteCumule;
...
public Runt rechercherAssiette(final String codeProcess, final String codeAssiette, final boolean isPrescrit) {
if (listeAssietteCumule.get(codeProcess) == null) {
listeAssietteCumule.put(codeProcess, new HashMap<String, Map<Boolean,
Runt>>());
}
if (listeAssietteCumule.get(codeProcess).get(codeAssiette) == null) {
listeAssietteCumule.get(codeProcess).put(codeAssiette, new HashMap<Boolean, ResultatUnitaireNonType>());
}
return listeAssietteCumule.get(codeProcess).get(codeAssiette).get(isPrescrit);
}
...
} |
Celle-ci renvoie une exception NullPointerException à la dernière ligne.
Le même code en monothread fonctionne bien par contre.
Bref, je ne comprends pas ce qui se passe.
Merci