Convert try finally block to try-with-resources

Change-Id: I582403c93668b82bb733a8993c1c7fabfe46ee58
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java
index 789fd53..fd81174 100644
--- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java
+++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/E4Application.java
@@ -682,11 +682,8 @@
 			// file, it happens to follow the same format currently, so using
 			// Properties to read it is convenient.
 			Properties props = new Properties();
-			FileInputStream is = new FileInputStream(versionFile);
-			try {
+			try (FileInputStream is = new FileInputStream(versionFile)) {
 				props.load(is);
-			} finally {
-				is.close();
 			}
 
 			return props.getProperty(WORKSPACE_VERSION_KEY);
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
index a973f43..4df2b87 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
@@ -282,12 +282,12 @@
     }
 
     @Override
-	public void load(String fileName) throws IOException {
-        FileInputStream stream = new FileInputStream(fileName);
-        BufferedReader reader = new BufferedReader(new InputStreamReader(
-				stream, StandardCharsets.UTF_8));
-        load(reader);
-        reader.close();
+    public void load(String fileName) throws IOException {
+    	FileInputStream stream = new FileInputStream(fileName);
+    	try (BufferedReader reader = new BufferedReader(new InputStreamReader(
+    			stream, StandardCharsets.UTF_8))) {
+    		load(reader);
+    	}
     }
 
     private void load(Document document, Element root) {
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
index 3ca2b31..7f5ff57 100644
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
+++ b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
@@ -364,9 +364,9 @@
 		if (filename == null) {
 			throw new IOException("File name not specified");//$NON-NLS-1$
 		}
-		FileInputStream in = new FileInputStream(filename);
-		load(in);
-		in.close();
+		try (FileInputStream in = new FileInputStream(filename)) {
+			load(in);
+		}
 	}
 
 	/**
@@ -425,14 +425,8 @@
 		if (filename == null) {
 			throw new IOException("File name not specified");//$NON-NLS-1$
 		}
-		FileOutputStream out = null;
-		try {
-			out = new FileOutputStream(filename);
+		try (FileOutputStream out = new FileOutputStream(filename)) {
 			save(out, null);
-		} finally {
-			if (out != null) {
-				out.close();
-			}
 		}
 	}
 
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
index 618e3eb..025c889 100644
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
+++ b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
@@ -531,11 +531,8 @@
             // file, it happens to follow the same format currently, so using
             // Properties to read it is convenient.
             Properties props = new Properties();
-            FileInputStream is = new FileInputStream(versionFile);
-            try {
+            try (FileInputStream is = new FileInputStream(versionFile)) {
                 props.load(is);
-            } finally {
-                is.close();
             }
 
             String versionString = props.getProperty(WORKSPACE_CHECK_REFERENCE_BUNDLE_NAME);
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
index d8607ab..38139a0 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDE.java
@@ -850,14 +850,8 @@
 
 		IContentType contentType = null;
 		try {
-			InputStream is = null;
-			try {
-				is = fileStore.openInputStream(EFS.NONE, null);
+			try (InputStream is = fileStore.openInputStream(EFS.NONE, null)) {
 				contentType = Platform.getContentTypeManager().findContentTypeFor(is, name);
-			} finally {
-				if (is != null) {
-					is.close();
-				}
 			}
 		} catch (CoreException ex) {
 			// continue without content type
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
index af62634..4ecb538 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
@@ -1278,12 +1278,13 @@
 				FilterCopy[] myTypes = (FilterCopy[]) object;
 				try {
 					ByteArrayOutputStream out = new ByteArrayOutputStream();
-					DataOutputStream writeOut = new DataOutputStream(out);
-					writeOut.writeInt(myTypes.length);
-					for (FilterCopy myType : myTypes)
-						writeOut.writeInt(myType.getSerialNumber());
-					byte[] buffer = out.toByteArray();
-					writeOut.close();
+					byte[] buffer;
+					try (DataOutputStream writeOut = new DataOutputStream(out)) {
+						writeOut.writeInt(myTypes.length);
+						for (FilterCopy myType : myTypes)
+							writeOut.writeInt(myType.getSerialNumber());
+						buffer = out.toByteArray();
+					}
 					super.javaToNative(buffer, transferData);
 				} catch (IOException e) {
 				}
@@ -1299,20 +1300,20 @@
 				FilterCopy[] myData;
 				try {
 					ByteArrayInputStream in = new ByteArrayInputStream(buffer);
-					DataInputStream readIn = new DataInputStream(in);
+				    try (DataInputStream readIn = new DataInputStream(in)) {
 					int size = readIn.readInt();
 
 					LinkedList<FilterCopy> droppedFilters = new LinkedList<>();
 					for (int i = 0; i < size; i++) {
-						int serialNumber = readIn.readInt();
-						FilterCopy tmp = filters
-								.findBySerialNumber(serialNumber);
-						if (tmp != null)
-							droppedFilters.add(tmp);
+					    int serialNumber = readIn.readInt();
+					    FilterCopy tmp = filters
+						    .findBySerialNumber(serialNumber);
+					    if (tmp != null)
+						droppedFilters.add(tmp);
 					}
 					myData = droppedFilters
-							.toArray(new FilterCopy[0]);
-					readIn.close();
+						.toArray(new FilterCopy[0]);
+				    }
 				} catch (IOException ex) {
 					return null;
 				}
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/XMLMemento.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/XMLMemento.java
index e624e3b..349db12 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/XMLMemento.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/XMLMemento.java
@@ -570,11 +570,8 @@
 	 *                     stream.
 	 */
 	public void save(Writer writer) throws IOException {
-		DOMWriter out = new DOMWriter(writer);
-		try {
+		try (DOMWriter out = new DOMWriter(writer)) {
 			out.print(element);
-		} finally {
-			out.close();
 		}
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractWorkingSetManager.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractWorkingSetManager.java
index 96311a1..a297461 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractWorkingSetManager.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/AbstractWorkingSetManager.java
@@ -783,9 +783,9 @@
 		saveMruList(memento);
 
 		FileOutputStream stream = new FileOutputStream(stateFile);
-		OutputStreamWriter writer = new OutputStreamWriter(stream, StandardCharsets.UTF_8);
+	    try (OutputStreamWriter writer = new OutputStreamWriter(stream, StandardCharsets.UTF_8)) {
 		memento.save(writer);
-		writer.close();
+	    }
 
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ConfigurationInfo.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ConfigurationInfo.java
index b3f34f5..e517380 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ConfigurationInfo.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/ConfigurationInfo.java
@@ -67,12 +67,12 @@
 	 */
 	public static String getSystemSummary() {
 		StringWriter out = new StringWriter();
-		PrintWriter writer = new PrintWriter(out);
-		writer.println(NLS.bind(WorkbenchMessages.SystemSummary_timeStamp,
-				DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date())));
+		try (PrintWriter writer = new PrintWriter(out)) {
+			writer.println(NLS.bind(WorkbenchMessages.SystemSummary_timeStamp,
+					DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL).format(new Date())));
 
-		ConfigurationInfo.appendExtensions(writer);
-		writer.close();
+			ConfigurationInfo.appendExtensions(writer);
+		}
 		return out.toString();
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java
index 435ef47..afab900 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchLayoutSettingsTransfer.java
@@ -54,29 +54,29 @@
 			File deltas = new File(currentLocation.toOSString(), "deltas.xml"); //$NON-NLS-1$
 			if (deltas.exists()) {
 				byte[] bytes = new byte[8192];
-				FileInputStream inputStream = new FileInputStream(deltas);
-				FileOutputStream outputStream = new FileOutputStream(new File(workspaceFile, "deltas.xml")); //$NON-NLS-1$
-				int read = inputStream.read(bytes, 0, 8192);
-				while (read != -1) {
-					outputStream.write(bytes, 0, read);
-					read = inputStream.read(bytes, 0, 8192);
+				try (FileInputStream inputStream = new FileInputStream(deltas);
+						FileOutputStream outputStream = new FileOutputStream(new File(workspaceFile, "deltas.xml")); //$NON-NLS-1$
+				) {
+					int read = inputStream.read(bytes, 0, 8192);
+					while (read != -1) {
+						outputStream.write(bytes, 0, read);
+						read = inputStream.read(bytes, 0, 8192);
+					}
 				}
-				inputStream.close();
-				outputStream.close();
 			}
 
 			File workbenchModel = new File(currentLocation.toOSString(), "workbench.xmi"); //$NON-NLS-1$
 			if (workbenchModel.exists()) {
 				byte[] bytes = new byte[8192];
-				FileInputStream inputStream = new FileInputStream(workbenchModel);
-				FileOutputStream outputStream = new FileOutputStream(new File(workspaceFile, "workbench.xmi")); //$NON-NLS-1$
-				int read = inputStream.read(bytes, 0, 8192);
-				while (read != -1) {
-					outputStream.write(bytes, 0, read);
-					read = inputStream.read(bytes, 0, 8192);
+				try (FileInputStream inputStream = new FileInputStream(workbenchModel);
+						FileOutputStream outputStream = new FileOutputStream(new File(workspaceFile, "workbench.xmi")); //$NON-NLS-1$
+				) {
+					int read = inputStream.read(bytes, 0, 8192);
+					while (read != -1) {
+						outputStream.write(bytes, 0, read);
+						read = inputStream.read(bytes, 0, 8192);
+					}
 				}
-				inputStream.close();
-				outputStream.close();
 			}
 		} catch (IOException e) {
 			return new Status(IStatus.ERROR, WorkbenchPlugin.PI_WORKBENCH,
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkingSetManager.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkingSetManager.java
index 006294b..cf45543 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkingSetManager.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkingSetManager.java
@@ -98,14 +98,13 @@
 		if (stateFile != null && stateFile.exists()) {
 			try {
 				restoreInProgress = true;
-
-				FileInputStream input = new FileInputStream(stateFile);
-				BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
-
-				IMemento memento = XMLMemento.createReadRoot(reader);
-				restoreWorkingSetState(memento);
-				restoreMruList(memento);
-				reader.close();
+				try (FileInputStream input = new FileInputStream(stateFile);
+						BufferedReader reader = new BufferedReader(
+								new InputStreamReader(input, StandardCharsets.UTF_8))) {
+					IMemento memento = XMLMemento.createReadRoot(reader);
+					restoreWorkingSetState(memento);
+					restoreMruList(memento);
+				}
 			} catch (IOException | WorkbenchException e) {
 				handleInternalError(e, WorkbenchMessages.ProblemRestoringWorkingSetState_title,
 						WorkbenchMessages.ProblemRestoringWorkingSetState_message);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingPersistence.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingPersistence.java
index 86a32db..207d45e 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingPersistence.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/keys/BindingPersistence.java
@@ -968,12 +968,9 @@
 
 		// Write the XML block to the workbench preference store.
 		final IPreferenceStore preferenceStore = WorkbenchPlugin.getDefault().getPreferenceStore();
-		final Writer writer = new StringWriter();
-		try {
+		try (Writer writer = new StringWriter()) {
 			xmlMemento.save(writer);
 			preferenceStore.setValue(EXTENSION_COMMANDS, writer.toString());
-		} finally {
-			writer.close();
 		}
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/part/StatusPart.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/part/StatusPart.java
index cbc4196..e517245 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/part/StatusPart.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/part/StatusPart.java
@@ -174,10 +174,10 @@
 
 	private String getStackTrace(Throwable throwable) {
 		StringWriter swriter = new StringWriter();
-		PrintWriter pwriter = new PrintWriter(swriter);
-		throwable.printStackTrace(pwriter);
-		pwriter.flush();
-		pwriter.close();
+		try (PrintWriter pwriter = new PrintWriter(swriter)) {
+			throwable.printStackTrace(pwriter);
+			pwriter.flush();
+		}
 		return swriter.toString();
 	}
 
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java
index c3ac044..0e1e9aa 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/preferences/PreferencesSettingsTransfer.java
@@ -64,18 +64,14 @@
 	}
 
 	private void copyFiles(File src, File dest) throws IOException {
-		FileInputStream fis = new FileInputStream(src);
-		FileOutputStream fos = new FileOutputStream(dest);
 
-		byte[] buffer = new byte[1024];
-
-		int length;
-		while ((length = fis.read(buffer)) > 0) {
-			fos.write(buffer, 0, length);
-		}
-
-		fis.close();
-		fos.close();
+		try (FileOutputStream fos = new FileOutputStream(dest); FileInputStream fis = new FileInputStream(src)) {
+	    	byte[] buffer = new byte[1024];
+	    	int length;
+	    	while ((length = fis.read(buffer)) > 0) {
+	    		fos.write(buffer, 0, length);
+	    	}
+	    }
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressManager.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressManager.java
index 53f1169..7e29b3c 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressManager.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/progress/ProgressManager.java
@@ -760,9 +760,10 @@
 	 */
 	ImageData[] getImageData(URL fileSystemPath, ImageLoader loader) {
 		try {
-			InputStream stream = fileSystemPath.openStream();
-			ImageData[] result = loader.load(stream);
-			stream.close();
+		    ImageData[] result;
+		    try (InputStream stream = fileSystemPath.openStream()) {
+		    	result = loader.load(stream);
+		    }
 			return result;
 		} catch (IOException exception) {
 			ProgressManagerUtil.logException(exception);
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/PluginTransfer.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/PluginTransfer.java
index 8c7f78e..ba9e317 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/PluginTransfer.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/part/PluginTransfer.java
@@ -94,11 +94,11 @@
 		}
 		try {
 			ByteArrayOutputStream out = new ByteArrayOutputStream();
-			DataOutputStream dataOut = new DataOutputStream(out);
-			dataOut.writeUTF(realData.getExtensionId());
-			dataOut.writeInt(realData.getData().length);
-			dataOut.write(realData.getData());
-			dataOut.close();
+			try (DataOutputStream dataOut = new DataOutputStream(out)) {
+				dataOut.writeUTF(realData.getExtensionId());
+				dataOut.writeInt(realData.getData().length);
+				dataOut.write(realData.getData());
+			}
 			super.javaToNative(out.toByteArray(), transferData);
 		} catch (IOException e) {
 			WorkbenchPlugin.log(e);