J'observe un comportement étrange sur une machine Linux. Le code fonctionne bien sur Win 7. Le code incriminé se bloque sur xmlToJavaMap.keySet(). Aucune des deux déclarations de journal n'est enregistrée Aucune impasse trouvée dans le tas de tas.Java ConcurrentHashMap.keySet() se bloque
ConcurrentHashMap<String,String> xmlToJavaMap = ApplicationContext.getBean("map");
logger.info("before for loop");
for (String key : xmlToJavaMap.keySet()) {
logger.info("key: " + key);
...
}
logger.info("map processed.");
Plate-forme: version Java "1.7.0_11" Java (TM) SE Runtime Environment (build 1.7.0_11-b21) Java HotSpot (TM) 64 bits serveur VM (build-23.6 B04, mode mixte) Red Hat 4.4.7
Vous voulez vérifier si ce code est réellement en cours d'exécution ou si vous pourriez avoir un problème ailleurs. Les lectures de ConcurrentHashMap sont censées être non-verrouillables. – pvg
C'est ce qui est déconcertant. CHM.keySet() ne devrait pas bloquer. L'exécution atteint jusqu'à avant la boucle for, alors rien ne se passe. Le problème a commencé il y a quelques semaines dans l'un des environnements. – Prakash