Bonjour à tous,

Comme mon sujet l'indique, j'ai l'erreur suivante " Duplicate items in 'columnKeys' "

sur cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
				serviceNames, statNames, data);
Dans cette méthode :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
	private void printStatForMultipleService(
			HashMap<Ref, ServiceResourceStatistic> resourcesMap) {
		if (resourcesMap == null) {
			System.out
					.println("\nService statistics map is null...Nothing to print.\n");
		}
		if (resourcesMap.size() == 0) {
			System.out
					.println("\nService statistics map is empty...Nothing to print.\n");
		}
		// Transformation en set pour parcourir la map
		Set<Map.Entry<Ref, ServiceResourceStatistic>> set = resourcesMap
				.entrySet();
		int nbService = set.size();
		System.out.println("nb service : " + nbService);
		int nbStats = getStatArrayForOneService(set.iterator().next()
				.getValue()).length;
		System.out.println("nb stats : " + nbStats);
		String[] serviceNames = new String[nbService];
		String[] statNames = new String[nbStats];
		double[][] data = new double[nbService][nbStats];
		// Parcours de la map
		int i = 0;
		for (Map.Entry<Ref, ServiceResourceStatistic> mapEntry : set) {
 
			// Creation du tableau de stat pour chaque service
			ResourceStatistic[] resStatsArray = null;
			// Récupération des différentes statistiques sous forme d'Array
			resStatsArray = getStatArrayForOneService(mapEntry.getValue());
 
			int j = 0;
			// Parcours du tableau de statistique
			for (ResourceStatistic resStats : resStatsArray) {
				// Récupération d'une des statistiques du tableau
				StatisticValue[] statValues = resStats.getStatistics();
				// Pärcours des valeurs de la statistiques
				for (StatisticValue value : statValues) {
					if (value.getType() == StatisticType.INTERVAL) {
						StatisticValue.IntervalStatistic is = (StatisticValue.IntervalStatistic) value;
						// Nom de la statistique
						statNames[j] = resStats.getName();
						// récupération de l'interval moyen
						data[i][j] = is.getAverage();
 
						j++;
					}
				}
			}// Nom du service
			serviceNames[i] = mapEntry.getKey().getNames()[mapEntry.getKey()
					.getNames().length - 1];
			i++;
		}
 
		// Creation du dataset
		CategoryDataset dataset = DatasetUtilities.createCategoryDataset(
				serviceNames, statNames, data);
		// Creation du multiple pie chart
		JFreeChart chart = ChartFactory.createMultiplePieChart(
				"Multiple Pie Chart", dataset, TableOrder.BY_ROW, true, true,
				true);
		// Sauvegarde sous format d'image en local
		ChartRenderingInfo info = new ChartRenderingInfo(
				new StandardEntityCollection());
		File file1 = new File(this.idStat + ".jpeg");
		try {
			ChartUtilities.saveChartAsJPEG(file1, chart, 800, 600, info);
		} catch (IOException e) {
			e.printStackTrace();
		}
 
	}
Pour vous situer la méthode je passe en paramètre une hashmap qui contient
une liste de service auquel sont attaché pour chacun une map de statistiques
Dans cette map de statistiques il y a des nom de statistiques et une liste de valeur rattaché à chaque noms.
Le but de ma méthode et d'à partir de cette map, récupéré pour chaque service. Tout les statistiques contenant un temps.
De ce côté là le code est bon j'ai déjà vérifier.

Pour exemple la map peut contenir

Service 1
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel

Service 2
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel

Service 3
---> Statistique d'appel
-------> nombre de fois
-------> intervalle d'appel
---> Statistique de transport
-------> nombre de fois
-------> intervalle d'appel

Et je voudrais en tirer un graph contenant 3 pie, et chaque pie contenant le nom du service pour un pie, et pour chaque catégorie le nom de la statistiques (ex: transport ou appel) et donc la valeur sera l'espace occupé par chaque catégorie dans le pie..

Quelqu'un voit un problème dans mon code ?
Merci d'avance.