Bonsoir à tous,
Je travaille en ce moment sur un système de "cache" de fichier .properties. Dans un répertoire, j'ai plusieurs fichiers de même type (exemple Tables de message d'erreurs), dont le nombre est variable : l'utilisateur peut rajouter de nouveau fichiers "messages d'erreurs" sans qu'on ait à redévelopper l'ensemble.
J'ai aussi besoin que ce soit rapide, thread safe (accès concurrents en perspective).
J'ai d'abord créé, dans ma classe "Configuration" (cache) une double Map, de ce type :
Malheureusement, à la lecture des informations dans une autre classe, je me suis aperçu que des données manquaient !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 /** * mapTablesExternalisees : Hashtable contenant un doublet de type : * - String identifiant le nom de la table, * - Map du fichier, contenant elle même : * > le libellé de la donnée * > la valeur de la donnée. */ private static Map < String, Map > mapTablesExternalisees = new Hashtable < String, Map > ();
Ce que je trouve étrange, c'est qu'il me ramène bien la Hashtable concernée, mais certaines des entrées sont absentes.
Pourtant, j'ai vérifié qu'aucune clé ne porte le même nom.
J'ai utilisé des ConcurrentHashMap, mais c'est pareil, il me manque toujours des données, dans le cas d'une double Map.
Avez vous une idée de l'origine de cette "perte de données" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private static ConcurrentMap< String, ConcurrentHashMap<String, String> > mapTablesExternalisees = new ConcurrentHashMap< String, ConcurrentHashMap<String, String> > ();
Merci !
Partager