Bug 510678 - Cleanup o.e.test.performance.ui

Generify the most obvious cases.

Change-Id: I7c32f393d02771f78342838a292b9e032a7c7586
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ConfigResults.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ConfigResults.java
index dcebb0d..14a0653 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ConfigResults.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ConfigResults.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -135,8 +135,8 @@
  * @return The list of the builds which names match the given pattern.
  * 	The list is ordered by build results date.
  */
-public List getBuilds(String buildPattern) {
-	List builds = new ArrayList();
+public List<BuildResults> getBuilds(String buildPattern) {
+	List<BuildResults> builds = new ArrayList<>();
 	int size = size();
 	for (int i=0; i<size; i++) {
 		BuildResults buildResults = (BuildResults) this.children.get(i);
@@ -172,15 +172,15 @@
  * @param prefixes List of expected prefixes
  * @return A list of builds which names start with one of the given patterns.
  */
-public List getBuildsMatchingPrefixes(List prefixes) {
-	List builds = new ArrayList();
+public List<AbstractResults> getBuildsMatchingPrefixes(List<String> prefixes) {
+	List<AbstractResults> builds = new ArrayList<>();
 	int size = size();
 	int length = prefixes.size();
 	for (int i=0; i<size; i++) {
 		AbstractResults buildResults = (AbstractResults) this.children.get(i);
 		String buildName = buildResults.getName();
 		for (int j=0; j<length; j++) {
-			if (buildName.startsWith((String)prefixes.get(j))) {
+			if (buildName.startsWith(prefixes.get(j))) {
 				builds.add(buildResults);
 			}
 		}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/PerformanceResults.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/PerformanceResults.java
index 3fe2ec5..ffa6173 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/PerformanceResults.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/PerformanceResults.java
@@ -50,7 +50,7 @@
 public class PerformanceResults extends AbstractResults {
 
 	String[] allBuildNames = null;
-	Map allScenarios;
+	Map<String, List<ScenarioResults>> allScenarios;
 	String lastBuildName; // Name of the last used build
 	String baselineName; // Name of the baseline build used for comparison
 	private String scenarioPattern = "%"; //$NON-NLS-1$
@@ -395,7 +395,7 @@
 	RemainingTimeGuess timeGuess = null;
 	for (int i=0; i<componentsLength; i++) {
 		String componentName = this.components[i];
-		List scenarios = this.allScenarios == null ? null : (List) this.allScenarios.get(componentName);
+		List<ScenarioResults> scenarios = this.allScenarios == null ? null : this.allScenarios.get(componentName);
 
 		// Manage monitor
 		int percentage = (int) ((((double)(i+1)) / (componentsLength+1)) * 100);
@@ -547,10 +547,9 @@
 	if (!dir.exists()) return;
 	File dataFile = new File(dir, "performances.dat");	//$NON-NLS-1$
 	if (!dataFile.exists()) return;
-	DataInputStream stream = null;
-	try {
-		// Read local file info
-		stream = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));
+
+	// Read local file info
+	try (DataInputStream stream = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));){
 
 		// Read build info
 		String str = stream.readUTF();
@@ -602,7 +601,7 @@
 		for (int i = 0; i < length; i++) {
 			this.components[i] = stream.readUTF();
 			int size = stream.readInt();
-			List scenarios = new ArrayList(size);
+			List<ScenarioResults> scenarios = new ArrayList<>(size);
 			for (int j=0; j<size; j++) {
 				scenarios.add(new ScenarioResults(stream.readInt(), stream.readUTF(), stream.readUTF()));
 			}
@@ -611,14 +610,6 @@
 		println("	=> read from file "+dataFile); //$NON-NLS-1$
 	} catch (IOException ioe) {
 		println("	!!! "+dataFile+" should be deleted as it contained invalid data !!!"); //$NON-NLS-1$ //$NON-NLS-2$
-	} finally {
-		try {
-		    if (stream != null) {
-	        stream.close();
-		    }
-        } catch (IOException e) {
-	        // nothing else to do!
-        }
 	}
 }
 
@@ -642,7 +633,7 @@
 	componentsSet.toArray(this.components = new String[componentsSize]);
 	for (int i=0; i<componentsSize; i++) {
 		String componentName = this.components[i];
-		List scenarios = (List) this.allScenarios.get(componentName);
+		List scenarios = this.allScenarios.get(componentName);
 		allScenariosSize += scenarios.size();
 	}
 	println(" -> "+allScenariosSize+" found in "+(System.currentTimeMillis()-start)+"ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -661,7 +652,7 @@
 }
 
 private void setAllBuildNames() {
-	SortedSet builds = new TreeSet(Util.BUILD_DATE_COMPARATOR);
+	SortedSet<String> builds = new TreeSet<>(Util.BUILD_DATE_COMPARATOR);
 	int size = size();
 	if (size == 0) return;
 	for (int i=0; i<size; i++) {
@@ -673,9 +664,9 @@
 	this.allBuildNames = new String[buildsSize];
 	if (buildsSize > 0) {
 		int n = 0;
-		Iterator buildNames = builds.iterator();
+		Iterator<String> buildNames = builds.iterator();
 		while (buildNames.hasNext()) {
-			String buildName = (String) buildNames.next();
+			String buildName = buildNames.next();
 			if (this.lastBuildName == null || Util.getBuildDate(buildName).compareTo(Util.getBuildDate(this.lastBuildName)) <= 0) {
 				this.allBuildNames[n++] = buildName;
 			}
@@ -955,8 +946,7 @@
 		}
 		dataFile.delete();
 	}
-	try {
-		DataOutputStream stream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));
+	try (DataOutputStream stream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)))){
 
 		// Write build info
 		stream.writeUTF(this.name == null ? DB_Results.getLastCurrentBuild() : this.name);
@@ -984,19 +974,17 @@
 		stream.writeInt(length);
 		for (int i = 0; i < length; i++) {
 			stream.writeUTF(this.components[i]);
-			List scenarios = (List) this.allScenarios.get(this.components[i]);
+			List<ScenarioResults> scenarios = this.allScenarios.get(this.components[i]);
 			int size = scenarios.size();
 			stream.writeInt(size);
 			for (int j=0; j<size; j++) {
-				final ScenarioResults scenarioResults = (ScenarioResults)scenarios.get(j);
+				final ScenarioResults scenarioResults = scenarios.get(j);
 				stream.writeInt(scenarioResults.getId());
 				stream.writeUTF(scenarioResults.getName());
 				stream.writeUTF(scenarioResults.getLabel());
 			}
 		}
 
-		// Close
-		stream.close();
 		println("	=> performance results general data  written in file " + dataFile); //$NON-NLS-1$
 	} catch (FileNotFoundException e) {
 		System.err.println("can't create output file" + dataFile); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ScenarioResults.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ScenarioResults.java
index 1bc51d4..e0e6b37 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ScenarioResults.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/db/ScenarioResults.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -96,15 +96,15 @@
 	return buffer.toString();
 }
 
-Set getAllBuildNames() {
-	Set buildNames = new HashSet();
+Set<String> getAllBuildNames() {
+	Set<String> buildNames = new HashSet<>();
 	int size = size();
 	for (int i=0; i<size; i++) {
 		ConfigResults configResults = (ConfigResults) this.children.get(i);
-		List builds = configResults.getBuilds(null);
+		List<BuildResults> builds = configResults.getBuilds(null);
 		int length = builds.size();
 		for (int j=0; j<length; j++) {
-			buildNames.add(((BuildResults)builds.get(j)).getName());
+			buildNames.add(builds.get(j).getName());
 		}
 	}
 	return buildNames;
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/BuildResultsElement.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/BuildResultsElement.java
index 056eb63..58f77ee 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/BuildResultsElement.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/BuildResultsElement.java
@@ -58,9 +58,9 @@
 	private static final PropertyDescriptor BUILD_TEST_ERROR_DESCRIPTOR = new PropertyDescriptor(P_ID_BUILD_ERROR, P_STR_BUILD_ERROR);
 	private static final PropertyDescriptor BUILD_STUDENTS_TTEST_DESCRIPTOR = new PropertyDescriptor(P_ID_BUILD_TTEST, P_STR_BUILD_TTEST);
 
-    private static Vector DESCRIPTORS;
+    private static Vector<PropertyDescriptor> DESCRIPTORS;
     static Vector initDescriptors(int status) {
-		DESCRIPTORS = new Vector();
+		DESCRIPTORS = new Vector<>();
 		// Status category
 		DESCRIPTORS.add(getInfosDescriptor(status));
 		DESCRIPTORS.add(getWarningsDescriptor(status));
@@ -91,7 +91,7 @@
         return DESCRIPTORS;
 	}
     static ComboBoxPropertyDescriptor getInfosDescriptor(int status) {
-		List list = new ArrayList();
+		List<String> list = new ArrayList<>();
 		if ((status & SMALL_VALUE) != 0) {
 			list.add("This test and/or its variation has a small value, hence it may not be necessary to spend time on fixing it if a regression occurs");
 		}
@@ -107,7 +107,7 @@
 		return infoDescriptor;
 	}
     static PropertyDescriptor getWarningsDescriptor(int status) {
-		List list = new ArrayList();
+		List<String> list = new ArrayList<>();
 		if ((status & BIG_ERROR) != 0) {
 			list.add("The error on this test is over the 3% threshold, hence its result may not be really reliable");
 		}
@@ -191,7 +191,7 @@
 
 @Override
 public IPropertyDescriptor[] getPropertyDescriptors() {
-	Vector descriptors = getDescriptors();
+	Vector<PropertyDescriptor> descriptors = getDescriptors();
 	if (descriptors == null) {
 		descriptors = initDescriptors(getStatus());
 	}
@@ -200,7 +200,7 @@
 	descriptorsArray[0] = getInfosDescriptor(getStatus());
 	descriptorsArray[1] = getWarningsDescriptor(getStatus());
 	for (int i=2; i<size; i++) {
-		descriptorsArray[i] = (IPropertyDescriptor) descriptors.get(i);
+		descriptorsArray[i] = descriptors.get(i);
 	}
 	return descriptorsArray;
 }
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
index 3beee24..0277cf7 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
@@ -154,9 +154,9 @@
 	}
 	List scenarios = new ArrayList();
 	if (this.results != null) {
-		Iterator iterator = this.results.getResults();
+		Iterator<ScenarioResults> iterator = this.results.getResults();
 		while (iterator.hasNext()) {
-			ScenarioResults scenarioResults = (ScenarioResults) iterator.next();
+			ScenarioResults scenarioResults = iterator.next();
 			if (scenarioResults.hasSummary()) {
 				scenarios.add(scenarioResults);
 			}
@@ -171,8 +171,8 @@
  * @param fingerprint Tell whether only fingerprint scenarios are expected or not.
  * @return A list of {@link String}.
  */
-public List getScenariosLabels(boolean fingerprint) {
-	List labels = new ArrayList();
+public List<String> getScenariosLabels(boolean fingerprint) {
+	List<String> labels = new ArrayList<>();
 	if (this.results != null) {
 		AbstractResults[] scenarios = this.results.getChildren();
 		int length = scenarios.length;
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java
index 3ce2dd1..064f67c 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/ConfigTab.java
@@ -535,7 +535,7 @@
 	if (this.results == null) {
 		return new String[0];
 	}
-	List labels = this.results.getScenariosLabels(fingerprints);
+	List<String> labels = this.results.getScenariosLabels(fingerprints);
 	labels.add(0, "Build");
 	String[] names = new String[labels.size()];
 	labels.toArray(names);
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java
index 8a02a55..ff0e826 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformanceResultsPreferencePage.java
@@ -473,10 +473,10 @@
  */
 void initDimensionsLists() {
 	// Dimensions lists
-	java.util.List dimensions = PerformanceTestPlugin.getDimensions();
-	Iterator names = dimensions.iterator();
+	java.util.List<String> dimensions = PerformanceTestPlugin.getDimensions();
+	Iterator<String> names = dimensions.iterator();
 	while (names.hasNext()) {
-		String name = (String) names.next();
+		String name = names.next();
 		this.defaultDimensionCombo.add(name);
 		this.resultsDimensionsList.add(name);
 	}
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java
index db39711..f3914e3 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/ui/PerformancesView.java
@@ -118,7 +118,7 @@
 	        return true;
         }
 	};
-	Set viewFilters = new HashSet();
+	Set<ViewerFilter> viewFilters = new HashSet<>();
 
 	// SWT resources
 	Shell shell;
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/BarGraph.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/BarGraph.java
index 438909c..a93d0fd 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/BarGraph.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/BarGraph.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -55,11 +55,11 @@
 	}
 
 	private String fTitle;
-	private List fItems;
+	private List<BarItem> fItems;
 
 	BarGraph(String title) {
 		this.fTitle= title;
-		this.fItems= new ArrayList();
+		this.fItems= new ArrayList<>();
 	}
 
 	public void addItem(String name, double[] stats, String url, String slow, boolean significant) {
@@ -79,7 +79,7 @@
 
 		NumberFormat nf= NumberFormat.getInstance();
 
-		BarItem[] bars= (BarItem[]) this.fItems.toArray(new BarItem[this.fItems.size()]);
+		BarItem[] bars= this.fItems.toArray(new BarItem[this.fItems.size()]);
 
 		// draw white background
 		Color bg= display.getSystemColor(SWT.COLOR_WHITE);
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrint.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrint.java
index c9002a3..bca093a 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrint.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -113,7 +113,7 @@
 		// Create BarGraph
 		// TODO use FingerPrintGraph instead
 		BarGraph barGraph = null;
-		List allResults = new ArrayList();
+		List<ConfigResults> allResults = new ArrayList<>();
 		String defaultDimName = DB_Results.getDefaultDimension().getName();
 		for (int i=0, size=scenarios.size(); i<size; i++) {
 			ScenarioResults scenarioResults = (ScenarioResults) scenarios.get(i);
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrintGraph.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrintGraph.java
index 7fec6d6..808ad51 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrintGraph.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/FingerPrintGraph.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -86,7 +86,7 @@
 	int imageHeight;
 	int graphWidth;
 	int graphHeight;
-	Map resources = new HashMap();
+	Map<String, Resource> resources = new HashMap<>();
 
 	// Data fields
 	int count = 0;
@@ -107,7 +107,7 @@
 	 * This area applies to a configuration results and is made of several zones.
 	 */
 	class BarGraphArea {
-		List zones;
+		List<AreaZone> zones;
 		private ConfigResults configResults;
 
 		/*
@@ -149,14 +149,14 @@
 
 		 BarGraphArea(ConfigResults results) {
 			this.configResults = results;
-			this.zones = new ArrayList();
+			this.zones = new ArrayList<>();
         }
 
 		void print(PrintStream stream) {
 			String url = this.configResults.getName() + "/" + ((ScenarioResults) this.configResults.getParent()).getFileName() + ".html";
 			int size = this.zones.size();
 			for (int i=0; i<size; i++) {
-				AreaZone zone = (AreaZone) this.zones.get(i);
+				AreaZone zone = this.zones.get(i);
 				zone.print(url, stream);
 			}
 		}
@@ -169,7 +169,7 @@
 	}
 
 
-FingerPrintGraph(File dir, String fileName, int width, List results) {
+FingerPrintGraph(File dir, String fileName, int width, List<ConfigResults> results) {
     super();
     this.imageWidth = width;
     this.count = results.size();
@@ -626,9 +626,9 @@
 	}
 
 	// Dispose created graphic resources
-	Iterator iterator = this.resources.values().iterator();
+	Iterator<Resource> iterator = this.resources.values().iterator();
 	while (iterator.hasNext()) {
-		Resource resource = (Resource) iterator.next();
+		Resource resource = iterator.next();
 		resource.dispose();
 	}
 	this.resources.clear();
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/RawDataTable.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/RawDataTable.java
index 124bdfa..14c45d2 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/RawDataTable.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/RawDataTable.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -80,11 +80,11 @@
 	printColumnHeaders();
 	this.stream.print("</tr>\n");
 
-	List builds = this.configResults.getBuildsMatchingPrefixes(this.buildPrefixes);
+	List<BuildResults> builds = this.configResults.getBuildsMatchingPrefixes(this.buildPrefixes);
 	Collections.reverse(builds);
 	int size = builds.size();
 	for (int i=0; i<size; i++) {
-		BuildResults buildResults = (BuildResults) builds.get(i);
+		BuildResults buildResults = builds.get(i);
 		this.stream.print("<tr><td>");
 		this.stream.print(buildResults.getName());
 		this.stream.print("</td>");
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/ScenarioData.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/ScenarioData.java
index f23ef8b..9639411 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/ScenarioData.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/ScenarioData.java
@@ -45,7 +45,7 @@
  */
 public class ScenarioData {
 	private String baselinePrefix = null;
-	private List pointsOfInterest;
+	private List<String> pointsOfInterest;
 	private List buildIDStreamPatterns;
 	private File rootDir;
 	private static final int GRAPH_WIDTH = 600;
@@ -62,7 +62,7 @@
  * @param outputDir The directory root where the files are generated
  *
 */
-public ScenarioData(String baselinePrefix, List pointsOfInterest, List buildIDPatterns, File outputDir) {
+public ScenarioData(String baselinePrefix, List<String> pointsOfInterest, List buildIDPatterns, File outputDir) {
 	this.baselinePrefix = baselinePrefix;
 	this.pointsOfInterest = pointsOfInterest;
 	this.buildIDStreamPatterns = buildIDPatterns;
@@ -100,10 +100,10 @@
 	String current = configResults.getCurrentBuildName();
 
 	final String defaultBaselinePrefix = DB_Results.getDbBaselinePrefix();
-	Iterator builds = configResults.getResults();
+	Iterator<BuildResults> builds = configResults.getResults();
 	List lastSevenNightlyBuilds = configResults.lastNightlyBuildNames(7);
 	buildLoop: while (builds.hasNext()) {
-		BuildResults buildResults = (BuildResults) builds.next();
+		BuildResults buildResults = builds.next();
 		String buildID = buildResults.getName();
 		int underscoreIndex = buildID.indexOf('-');
 		String label = (underscoreIndex != -1 && buildID.equals(current)) ? buildID.substring(0, underscoreIndex) : buildID;
@@ -179,10 +179,10 @@
 		if (printStream != null) printStream.print("		+ "+configName);
 		final File outputDir = new File(this.rootDir, configName);
 		outputDir.mkdir();
-		Iterator components = performanceResults.getResults();
+		Iterator<ComponentResults> components = performanceResults.getResults();
 		while (components.hasNext()) {
 			if (printStream != null) printStream.print(".");
-			final ComponentResults componentResults = (ComponentResults) components.next();
+			final ComponentResults componentResults = components.next();
 
 			// Manage monitor
 			int percentage = (int) ((progress++ / total) * 100);
@@ -211,18 +211,18 @@
  * Print the summary file of the builds data.
  */
 void printSummary(String configName, String configBox, ComponentResults componentResults, File outputDir, SubMonitor subMonitor) {
-	Iterator scenarios = componentResults.getResults();
+	Iterator<ScenarioResults> scenarios = componentResults.getResults();
 	while (scenarios.hasNext()) {
 		List highlightedPoints = new ArrayList();
-		ScenarioResults scenarioResults = (ScenarioResults) scenarios.next();
+		ScenarioResults scenarioResults = scenarios.next();
 		ConfigResults configResults = scenarioResults.getConfigResults(configName);
 		if (configResults == null || !configResults.isValid()) continue;
 
 		// get latest points of interest matching
 		if (this.pointsOfInterest != null) {
-			Iterator buildPrefixes = this.pointsOfInterest.iterator();
+			Iterator<String> buildPrefixes = this.pointsOfInterest.iterator();
 			while (buildPrefixes.hasNext()) {
-				String buildPrefix = (String) buildPrefixes.next();
+				String buildPrefix = buildPrefixes.next();
 				List builds = configResults.getBuilds(buildPrefix);
 				if (buildPrefix.indexOf('*') <0 && buildPrefix.indexOf('?') < 0) {
 					if (builds.size() > 0) {
@@ -400,9 +400,9 @@
  * Print details file of the scenario builds data.
  */
 private void printDetails(String configName, String configBox, ComponentResults componentResults, File outputDir) {
-	Iterator scenarios = componentResults.getResults();
+	Iterator<ScenarioResults> scenarios = componentResults.getResults();
 	while (scenarios.hasNext()) {
-		ScenarioResults scenarioResults = (ScenarioResults) scenarios.next();
+		ScenarioResults scenarioResults = scenarios.next();
 		ConfigResults configResults = scenarioResults.getConfigResults(configName);
 		if (configResults == null || !configResults.isValid()) continue;
 		String scenarioName= scenarioResults.getName();
@@ -447,22 +447,14 @@
 	ImageData data = Utils.downSample(image);
 	ImageLoader il = new ImageLoader();
 	il.data = new ImageData[] { data };
-	OutputStream out = null;
-	try {
-		out = new BufferedOutputStream(new FileOutputStream(outputFile));
+	try (OutputStream out = new BufferedOutputStream(new FileOutputStream(outputFile))){
+
 		il.save(out, SWT.IMAGE_GIF);
 
-	} catch (FileNotFoundException e) {
+	} catch (IOException e) {
 		e.printStackTrace();
 	} finally {
 		image.dispose();
-		if (out != null) {
-			try {
-				out.close();
-			} catch (IOException e1) {
-				// silently ignored
-			}
-		}
 	}
 }
 }
diff --git a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/TimeLineGraph.java b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/TimeLineGraph.java
index 4ecf316..928389a 100644
--- a/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/TimeLineGraph.java
+++ b/bundles/org.eclipse.test.performance.ui/src/org/eclipse/test/performance/ui/TimeLineGraph.java
@@ -26,11 +26,11 @@
 
 public class TimeLineGraph extends LineGraph{
 
-    Hashtable fItemGroups;
+    Hashtable<String, List<TimeLineGraphItem>> fItemGroups;
 
     public TimeLineGraph (String title, Dim dim) {
         super(title, dim);
-        this.fItemGroups=new Hashtable();
+        this.fItemGroups=new Hashtable<>();
     }
 
     @Override
@@ -81,12 +81,12 @@
 
         setCoordinates(right-left,left,bottom-top,bottom,max-min);
 
-        Enumeration _enum=this.fItemGroups.elements();
-        Comparator comparator=new TimeLineGraphItem.GraphItemComparator();
+        Enumeration<List<TimeLineGraphItem>> _enum=this.fItemGroups.elements();
+        Comparator<TimeLineGraphItem> comparator=new TimeLineGraphItem.GraphItemComparator();
 
         while (_enum.hasMoreElements()) {
- 			List items = (List) _enum.nextElement();
-			Object[] fItemsArray=items.toArray();
+ 			List<TimeLineGraphItem> items = _enum.nextElement();
+ 			TimeLineGraphItem[] fItemsArray=items.toArray(new TimeLineGraphItem[items.size()]);
 			Arrays.sort(fItemsArray,comparator);
 			int lastx = 0;
 			int lasty = 0;
@@ -94,7 +94,7 @@
 			int n = fItemsArray.length;
 
 			for (int i = 0; i < n; i++) {
-				TimeLineGraphItem thisItem = (TimeLineGraphItem) fItemsArray[i];
+				TimeLineGraphItem thisItem = fItemsArray[i];
 
 				int yposition = thisItem.y;
 				int xposition = thisItem.x;
@@ -161,9 +161,9 @@
 	}
 
     public void addItem(String groupName,String name, String description, double value, Color col, boolean display, long timestamp,boolean isSpecial,boolean drawBaseline) {
-      	List items = (List) this.fItemGroups.get(groupName);
+      	List<TimeLineGraphItem> items = this.fItemGroups.get(groupName);
   		if (this.fItemGroups.get(groupName) == null) {
-  			items=new ArrayList();
+  			items=new ArrayList<>();
   			this.fItemGroups.put(groupName, items);
   		}
   		items.add(new TimeLineGraphItem(name, description, value, col, display,
@@ -172,12 +172,12 @@
 
     @Override
     public double getMaxItem() {
-    	Enumeration _enum=this.fItemGroups.elements();
+    	Enumeration<List<TimeLineGraphItem>> _enum=this.fItemGroups.elements();
         double maxItem= 0;
     	while (_enum.hasMoreElements()) {
-			List items = (List) _enum.nextElement();
+			List<TimeLineGraphItem> items = _enum.nextElement();
 			for (int i = 0; i < items.size(); i++) {
-				TimeLineGraphItem graphItem = (TimeLineGraphItem) items.get(i);
+				TimeLineGraphItem graphItem = items.get(i);
 				if (graphItem.value > maxItem)
 					maxItem = graphItem.value;
 			}
@@ -189,13 +189,13 @@
 
     @Override
     public double getMinItem() {
-       	Enumeration _enum = this.fItemGroups.elements();
+       	Enumeration<List<TimeLineGraphItem>> _enum = this.fItemGroups.elements();
 		double minItem = getMaxItem();
 
 		while (_enum.hasMoreElements()) {
-			List items = (List) _enum.nextElement();
+			List<TimeLineGraphItem> items = _enum.nextElement();
 			for (int i = 0; i < items.size(); i++) {
-				TimeLineGraphItem graphItem = (TimeLineGraphItem) items.get(i);
+				TimeLineGraphItem graphItem = items.get(i);
 				if (graphItem.value < minItem)
 					minItem = graphItem.value;
 			}
@@ -205,21 +205,21 @@
         return minItem;
     }
 
-    private TimeLineGraphItem getMostRecent(Hashtable lineGraphGroups) {
-		Enumeration _enum = lineGraphGroups.elements();
+    private TimeLineGraphItem getMostRecent(Hashtable<String, List<TimeLineGraphItem>> lineGraphGroups) {
+		Enumeration<List<TimeLineGraphItem>> _enum = lineGraphGroups.elements();
 		long mostRecentTimestamp = 0;
 		TimeLineGraphItem mostRecentItem = null;
 
 		while (_enum.hasMoreElements()) {
-			List items = (List) _enum.nextElement();
+			List<TimeLineGraphItem> items = _enum.nextElement();
 			for (int i = 0; i < items.size(); i++) {
 				if (items.size() == 1)
-					return (TimeLineGraphItem) items.get(i);
+					return items.get(i);
 				else {
-					TimeLineGraphItem graphItem = (TimeLineGraphItem) items.get(i);
+					TimeLineGraphItem graphItem = items.get(i);
 					if (graphItem.timestamp > mostRecentTimestamp) {
 						mostRecentTimestamp = graphItem.timestamp;
-						mostRecentItem = (TimeLineGraphItem) items.get(i);
+						mostRecentItem = items.get(i);
 					}
 				}
 			}
@@ -229,12 +229,12 @@
 
     private void setCoordinates(int width, int xOffset, int height, int yOffset, int yValueRange){
 
-        List mainGroup=(ArrayList)this.fItemGroups.get("main");
-        List referenceGroup=(ArrayList)this.fItemGroups.get("reference");
+        List<TimeLineGraphItem> mainGroup=this.fItemGroups.get("main");
+        List<TimeLineGraphItem> referenceGroup=this.fItemGroups.get("reference");
 
-        Comparator comparator=new TimeLineGraphItem.GraphItemComparator();
+        Comparator<TimeLineGraphItem> comparator=new TimeLineGraphItem.GraphItemComparator();
 
- 		Object[] fItemsArray=mainGroup.toArray();
+        TimeLineGraphItem[] fItemsArray=mainGroup.toArray(new TimeLineGraphItem[mainGroup.size()]);
 		Arrays.sort(fItemsArray,comparator);
 
 		int n = mainGroup.size();
@@ -243,7 +243,7 @@
 //		double min=getMinItem()*0.8;
 
 		for (int i = 0; i < n; i++) {
-			TimeLineGraphItem thisItem = (TimeLineGraphItem) fItemsArray[i];
+			TimeLineGraphItem thisItem = fItemsArray[i];
 			thisItem.setX(xOffset + (i * xIncrement));
 			thisItem.setY((int)(PADDING+((max-thisItem.value) * (height)/(yValueRange))));
 
@@ -254,7 +254,7 @@
 
 		n = referenceGroup.size();
 		for (int i = 0; i < n; i++) {
-			 TimeLineGraphItem thisItem = (TimeLineGraphItem) referenceGroup.get(i);
+			 TimeLineGraphItem thisItem = referenceGroup.get(i);
 			 if (thisItem.timestamp==-1)
 				 thisItem.setX(xOffset + (i * (width/n)));
 			 else
@@ -266,9 +266,9 @@
     }
 
 
-	private void setRelativeXPosition (TimeLineGraphItem thisItem, List items){
-			Comparator comparator=new TimeLineGraphItem.GraphItemComparator();
-			Object[] fItemsArray=items.toArray();
+	private void setRelativeXPosition (TimeLineGraphItem thisItem, List<TimeLineGraphItem> items){
+			Comparator<TimeLineGraphItem> comparator=new TimeLineGraphItem.GraphItemComparator();
+			TimeLineGraphItem[] fItemsArray=items.toArray(new TimeLineGraphItem[items.size()]);
 			Arrays.sort(fItemsArray,comparator);
 
 			TimeLineGraphItem closestPrecedingItem=null;
@@ -278,7 +278,7 @@
 			long minimumTimeDiffFollowing=thisItem.timestamp;
 
 			for (int i=0;i<fItemsArray.length;i++){
-				TimeLineGraphItem anItem=(TimeLineGraphItem)fItemsArray[i];
+				TimeLineGraphItem anItem=fItemsArray[i];
 				long timeDiff=thisItem.timestamp-anItem.timestamp;
 
 				 if (timeDiff>0&&timeDiff<minimumTimeDiffPreceding){