Use try-with-resource.
diff --git a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DirTransformer.java b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DirTransformer.java
index dcf5c30..e5bd89f 100644
--- a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DirTransformer.java
+++ b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/DirTransformer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 SAP AG
+ * Copyright (c) 2010, 2014 SAP AG
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -26,7 +26,6 @@
import java.net.URL;
import java.util.jar.JarFile;
-import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.virgo.util.io.PathReference;
/**
@@ -108,13 +107,10 @@
PathReference manifest = fromDirectory.newChild(JarFile.MANIFEST_NAME);
if (ensureManifestIsPresent && !manifest.exists()) {
- InputStream defaultManifestStream = getDefaultManifestStream();
PathReference toFile = toDirectory.newChild(JarFile.MANIFEST_NAME);
toFile.getParent().createDirectory();
- try {
+ try (InputStream defaultManifestStream = getDefaultManifestStream();) {
this.callback.transformFile(defaultManifestStream, toFile);
- } finally {
- IOUtils.closeQuietly(defaultManifestStream);
}
}
}
@@ -134,12 +130,9 @@
}
private void transformFile(PathReference fromFile, PathReference toFile) throws IOException {
- FileInputStream fis = new FileInputStream(fromFile.toFile());
boolean transformed = false;
- try {
+ try (FileInputStream fis = new FileInputStream(fromFile.toFile());) {
transformed = this.callback.transformFile(fis, toFile);
- } finally {
- IOUtils.closeQuietly(fis);
}
if (!transformed) {
toFile.getParent().createDirectory();
@@ -149,10 +142,10 @@
private InputStream getDefaultManifestStream() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter writer = new PrintWriter(baos);
- writer.println(MANIFEST_VERSION_HEADER);
- writer.println();
- writer.close();
- return new ByteArrayInputStream(baos.toByteArray());
+ try (PrintWriter writer = new PrintWriter(baos);) {
+ writer.println(MANIFEST_VERSION_HEADER);
+ writer.println();
+ return new ByteArrayInputStream(baos.toByteArray());
+ }
}
}
diff --git a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleScanner.java b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleScanner.java
index 5c8db21..eec09a1 100644
--- a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleScanner.java
+++ b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleScanner.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2012 VMware Inc.
+ * Copyright (c) 2009, 2014 VMware Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -36,7 +36,6 @@
import java.util.zip.ZipEntry;
import org.eclipse.gemini.web.internal.WebContainerUtils;
-import org.eclipse.virgo.util.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -153,17 +152,10 @@
}
private void doScanNestedJar(File file) throws IOException {
- JarInputStream jis = null;
-
- try {
- jis = new JarInputStream(new FileInputStream(file));
+ try (JarInputStream jis = new JarInputStream(new FileInputStream(file));) {
doScanNestedJar(file.getAbsolutePath(), jis);
} catch (IOException e) {
throw new IOException("Cannot scan " + file.getAbsolutePath(), e);
- } finally {
- if (jis != null) {
- IOUtils.closeQuietly(jis);
- }
}
}
@@ -182,8 +174,7 @@
}
private void scanWarFile() throws IOException {
- JarInputStream jis = new JarInputStream(this.source.openStream());
- try {
+ try (JarInputStream jis = new JarInputStream(this.source.openStream());) {
JarEntry entry;
while ((entry = jis.getNextJarEntry()) != null) {
String entryName = entry.getName();
@@ -196,8 +187,6 @@
this.callBack.classFound(entry.getName().substring(CLASSES_ENTRY_PREFIX.length()));
}
}
- } finally {
- IOUtils.closeQuietly(jis);
}
}
@@ -291,8 +280,7 @@
}
private void scanNestedJarInWarFileWithStream(String jarPath) throws IOException {
- JarInputStream jis = new JarInputStream(this.source.openStream());
- try {
+ try (JarInputStream jis = new JarInputStream(this.source.openStream());) {
JarEntry entry;
while ((entry = jis.getNextJarEntry()) != null) {
String entryName = entry.getName();
@@ -303,8 +291,6 @@
}
}
}
- } finally {
- IOUtils.closeQuietly(jis);
}
}
diff --git a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerService.java b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerService.java
index 0edc8eb..2228d5d 100644
--- a/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerService.java
+++ b/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerService.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2009, 2010 VMware Inc.
+ * Copyright (c) 2009, 2014 VMware Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -36,7 +36,6 @@
import org.eclipse.gemini.web.core.WebBundleManifestTransformer;
import org.eclipse.gemini.web.internal.WebContainerUtils;
import org.eclipse.gemini.web.internal.url.DirTransformer.DirTransformerCallback;
-import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.virgo.util.io.JarTransformer;
import org.eclipse.virgo.util.io.JarTransformer.JarTransformerCallback;
import org.eclipse.virgo.util.io.JarTransformingURLConnection;
@@ -153,12 +152,8 @@
public boolean transformFile(InputStream inputStream, PathReference toFile) throws IOException {
if (MANIFEST_MF.equals(toFile.getName()) && META_INF.equals(toFile.getParent().getName())) {
toFile.getParent().createDirectory();
- OutputStream outputStream = null;
- try {
- outputStream = new FileOutputStream(toFile.toFile());
+ try (OutputStream outputStream = new FileOutputStream(toFile.toFile());) {
transformManifest(inputStream, outputStream);
- } finally {
- IOUtils.closeQuietly(outputStream);
}
return true;
}
diff --git a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
index 0fcd123..a908a6c 100644
--- a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
+++ b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformerTests.java
@@ -34,7 +34,6 @@
import java.util.jar.Manifest;
import org.eclipse.gemini.web.internal.url.DirTransformer.DirTransformerCallback;
-import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.virgo.util.io.PathReference;
import org.junit.Test;
@@ -180,32 +179,21 @@
}
private void checkManifest(File manifestFile) throws IOException {
- InputStream is = null;
- try {
- is = new FileInputStream(manifestFile);
+ try (InputStream is = new FileInputStream(manifestFile);) {
Manifest manifest = new Manifest(is);
Attributes attr = manifest.getMainAttributes();
String value = attr.getValue("Custom-Header");
assertEquals("test", value);
assertEquals(1, attr.size());
- } finally {
- IOUtils.closeQuietly(is);
}
}
private void createManifest(File manifest, String... headers) throws IOException {
- OutputStream outputStream = null;
- PrintWriter writer = null;
- try {
- outputStream = new FileOutputStream(manifest);
- writer = new PrintWriter(manifest);
+ try (OutputStream outputStream = new FileOutputStream(manifest); PrintWriter writer = new PrintWriter(manifest);) {
for (String header : headers) {
writer.println(header);
}
writer.println();
- } finally {
- IOUtils.closeQuietly(writer);
- IOUtils.closeQuietly(outputStream);
}
}
}
diff --git a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformingURLConnectionTests.java b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformingURLConnectionTests.java
index f2acb52..20237a9 100644
--- a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformingURLConnectionTests.java
+++ b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/DirTransformingURLConnectionTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 SAP AG
+ * Copyright (c) 2010, 2014 SAP AG
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -62,8 +62,9 @@
DirTransformingURLConnection connection = new DirTransformingURLConnection(directory, transformer);
connection.setTransformedURL(tempDirectory);
- InputStream is = connection.getInputStream();
- assertNotNull(is);
+ try (InputStream is = connection.getInputStream();) {
+ assertNotNull(is);
+ }
URL url = connection.getURL();
assertTrue(tempDirectory.equals(url));
diff --git a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerServiceTests.java b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerServiceTests.java
index d285b2c..194be35 100644
--- a/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerServiceTests.java
+++ b/org.eclipse.gemini.web.core/src/test/java/org/eclipse/gemini/web/internal/url/WebBundleUrlStreamHandlerServiceTests.java
@@ -39,7 +39,6 @@
import java.util.jar.Manifest;
import org.eclipse.virgo.util.io.FileSystemUtils;
-import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.virgo.util.io.PathReference;
import org.junit.Test;
@@ -51,8 +50,7 @@
URLConnection connection = url.toURL().openConnection();
assertNotNull(connection);
- try (InputStream inputStream = connection.getInputStream();
- JarInputStream jarInputStream = new JarInputStream(inputStream);) {
+ try (InputStream inputStream = connection.getInputStream(); JarInputStream jarInputStream = new JarInputStream(inputStream);) {
Manifest manifest = jarInputStream.getManifest();
if (manifest != null) {
@@ -118,14 +116,13 @@
}
private void checkContent(URLConnection connection, String contextPath, File webXml) throws Exception {
- InputStream inputStream = connection.getInputStream();
- assertNotNull(inputStream);
+ try (InputStream inputStream = connection.getInputStream();) {
+ assertNotNull(inputStream);
+ }
File webAppDir = new File(connection.getURL().getPath());
// Check Manifest
- InputStream is = null;
- try {
- is = new FileInputStream(new File(webAppDir, JarFile.MANIFEST_NAME));
+ try (InputStream is = new FileInputStream(new File(webAppDir, JarFile.MANIFEST_NAME));) {
Manifest manifest = new Manifest(is);
if (manifest != null) {
@@ -138,8 +135,6 @@
}
}
}
- } finally {
- IOUtils.closeQuietly(is);
}
// Check web.xml
@@ -151,14 +146,12 @@
}
private void createManifest(File manifest, String... headers) throws Exception {
- OutputStream os = new FileOutputStream(manifest);
- PrintWriter writer = new PrintWriter(os);
- for (String header : headers) {
- writer.println(header);
+ try (OutputStream os = new FileOutputStream(manifest); PrintWriter writer = new PrintWriter(os);) {
+ for (String header : headers) {
+ writer.println(header);
+ }
+ writer.println();
}
- writer.println();
- writer.close();
- IOUtils.closeQuietly(os);
}
private static class TestWarUrl extends WebBundleUrl {
diff --git a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/ExtenderBase.java b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/ExtenderBase.java
index 9d7a964..4f44a23 100644
--- a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/ExtenderBase.java
+++ b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/ExtenderBase.java
@@ -42,7 +42,7 @@
protected static final String REQUEST_URL = "http://localhost:8080/simple-war/index.html";
- private BundleContext context = TestFrameworkUtils.getBundleContextForTestClass(getClass());
+ private final BundleContext context = TestFrameworkUtils.getBundleContextForTestClass(getClass());
protected BundleContext getBundleContext() {
return this.context;
@@ -187,8 +187,7 @@
protected void validateURL(String path, String expectedResponse) throws MalformedURLException, IOException, InterruptedException {
InputStream stream = openInputStream(path);
assertNotNull(stream);
- BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
- try {
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream));) {
if (expectedResponse == null) {
String line = null;
while ((line = reader.readLine()) != null) {
@@ -197,16 +196,12 @@
} else {
Assert.assertEquals(expectedResponse, reader.readLine());
}
- } finally {
- reader.close();
}
}
private void validateNotFound(String path) throws Exception {
URL url = new URL(path);
- try {
- InputStream stream = url.openConnection().getInputStream();
- stream.close();
+ try (InputStream stream = url.openConnection().getInputStream();) {
fail("URL '" + path + "' is still deployed");
} catch (IOException e) {
}
diff --git a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/StreamBasedExtenderTests.java b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/StreamBasedExtenderTests.java
index d1944ba..9da28ea 100644
--- a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/StreamBasedExtenderTests.java
+++ b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/extender/StreamBasedExtenderTests.java
@@ -117,30 +117,25 @@
super.installWar2("?Bundle-ManifestVersion=2&Web-ContextPath=/simple-war", REQUEST_URL);
}
+ @Override
protected Bundle installWarBundle(String suffix) throws BundleException {
return installBundle("simple-war.war", "webbundle:file:../org.eclipse.gemini.web.core/target/resources/simple-war.war", suffix);
}
+ @Override
protected Bundle installBundle(String location, String bundleUrl, String suffix) throws BundleException {
- InputStream in = null;
+ URL url = null;
try {
- URL url = new URL(bundleUrl + suffix);
- in = url.openStream();
+ url = new URL(bundleUrl + suffix);
} catch (MalformedURLException e) {
fail("Unexpected exception " + e.getMessage());
- } catch (IOException e) {
- fail("Unexpected exception " + e.getMessage());
}
- try {
+ try (InputStream in = url.openStream();) {
return getBundleContext().installBundle(location, in);
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- }
- }
+ } catch (IOException e) {
+ fail("Unexpected exception " + e.getMessage());
+ return null;
}
}
}
diff --git a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/tomcat/TomcatServletContainerTests.java b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/tomcat/TomcatServletContainerTests.java
index 9f18194..3e06508 100644
--- a/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/tomcat/TomcatServletContainerTests.java
+++ b/org.eclipse.gemini.web.test/src/test/java/org/eclipse/gemini/web/test/tomcat/TomcatServletContainerTests.java
@@ -45,7 +45,6 @@
import org.eclipse.virgo.test.framework.TestFrameworkUtils;
import org.eclipse.virgo.util.io.FileCopyUtils;
import org.eclipse.virgo.util.io.FileSystemUtils;
-import org.eclipse.virgo.util.io.IOUtils;
import org.eclipse.virgo.util.io.PathReference;
import org.eclipse.virgo.util.io.ZipUtils;
import org.junit.Before;
@@ -119,20 +118,11 @@
@Test
public void testServletContainerAvailable() {
assertNotNull(this.container);
- Socket socket = null;
- try {
- socket = new Socket("localhost", 8080);
+ try (Socket socket = new Socket("localhost", 8080);) {
} catch (UnknownHostException e) {
fail("Unable to connect");
} catch (IOException e) {
fail("Unable to connect");
- } finally {
- if (socket != null) {
- try {
- socket.close();
- } catch (IOException e) {
- }
- }
}
}
@@ -362,13 +352,12 @@
private void validateNotFound(String path) throws Exception {
URL url = new URL(path);
- try {
- url.openConnection().getInputStream();
+ try (InputStream is = url.openConnection().getInputStream();) {
+ fail("URL '" + path + "' is still deployed");
} catch (IOException e) {
assertTrue("success case", true);
return;
}
- fail("URL '" + path + "' is still deployed");
}
private PathReference explode(PathReference packed) throws IOException {
@@ -632,13 +621,9 @@
if (!file.getParentFile().exists()) {
assertTrue(file.getParentFile().mkdirs());
}
- FileWriter fWriter = null;
- try {
- fWriter = new FileWriter(file);
+ try (FileWriter fWriter = new FileWriter(file);) {
fWriter.write(content);
fWriter.flush();
- } finally {
- IOUtils.closeQuietly(fWriter);
}
}
diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocator.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocator.java
index 0caef5d..4dae2fc 100755
--- a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocator.java
+++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2010 SAP AG
+ * Copyright (c) 2010, 2014 SAP AG
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -147,22 +147,13 @@
return contextXml.toURI().toURL();
}
} else {
- JarFile jar = null;
- try {
- jar = new JarFile(docBaseFile);
+ try (JarFile jar = new JarFile(docBaseFile);) {
ZipEntry contextXmlEntry = jar.getEntry(CONTEXT_XML);
if (contextXmlEntry != null) {
return new URL(JAR_SCHEMA + docBaseFile.toURI().toString() + JAR_TO_ENTRY_SEPARATOR + CONTEXT_XML);
}
} catch (IOException e) {
throw new ServletContainerException("Cannot open for reading " + docBaseFile.getAbsolutePath(), e);
- } finally {
- if (jar != null) {
- try {
- jar.close();
- } catch (IOException _) {
- }
- }
}
}
return null;
@@ -207,28 +198,21 @@
return null;
}
- JarFile jarFile = null;
try {
URLConnection connection = bundleUrl.openConnection();
if (connection instanceof JarURLConnection) {
JarURLConnection jarURLConnection = (JarURLConnection) connection;
jarURLConnection.setUseCaches(false);
- jarFile = jarURLConnection.getJarFile();
- String entryName = jarURLConnection.getEntryName();
- if (entryName != null && jarFile != null && jarFile.getEntry(entryName) != null) {
- return bundleUrl;
+ try (JarFile jarFile = jarURLConnection.getJarFile();) {
+ String entryName = jarURLConnection.getEntryName();
+ if (entryName != null && jarFile != null && jarFile.getEntry(entryName) != null) {
+ return bundleUrl;
+ }
}
}
} catch (IOException e) {
return null;
- } finally {
- if (jarFile != null) {
- try {
- jarFile.close();
- } catch (IOException _) {
- }
- }
}
return null;
diff --git a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocatorTests.java b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocatorTests.java
index c18ff23..37314bc 100755
--- a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocatorTests.java
+++ b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/WebappConfigLocatorTests.java
@@ -36,7 +36,6 @@
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.eclipse.gemini.web.core.spi.ServletContainerException;
-import org.eclipse.virgo.util.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -88,31 +87,18 @@
byte[] buffer = new byte[1024];
int bytesRead;
- FileOutputStream stream = null;
- JarOutputStream out = null;
- FileInputStream file = null;
- try {
- stream = new FileOutputStream(jarFile1.getPath());
- out = new JarOutputStream(stream, new Manifest());
- file = new FileInputStream(new File(urlFile2.getPath()));
+ try (FileOutputStream stream = new FileOutputStream(jarFile1.getPath());
+ JarOutputStream out = new JarOutputStream(stream, new Manifest());
+ FileInputStream file = new FileInputStream(new File(urlFile2.getPath()));) {
JarEntry jarAdd = new JarEntry(JAR_ENTRY_NAME);
out.putNextEntry(jarAdd);
while ((bytesRead = file.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
out.closeEntry();
- } finally {
- IOUtils.closeQuietly(file);
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(stream);
}
- try {
- stream = new FileOutputStream(jarFile2.getPath());
- out = new JarOutputStream(stream, new Manifest());
- } finally {
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(stream);
+ try (FileOutputStream stream = new FileOutputStream(jarFile2.getPath()); JarOutputStream out = new JarOutputStream(stream, new Manifest());) {
}
}