You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@twill.apache.org by ch...@apache.org on 2015/07/24 20:29:36 UTC

[02/25] incubator-twill git commit: (TWILL-130) Upgrade to Java 7

(TWILL-130) Upgrade to Java 7

- Also upgrade try-finally block to ARM style.

This closes #35 on GitHub

Signed-off-by: Terence Yim <ch...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-twill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-twill/commit/2175c664
Tree: http://git-wip-us.apache.org/repos/asf/incubator-twill/tree/2175c664
Diff: http://git-wip-us.apache.org/repos/asf/incubator-twill/diff/2175c664

Branch: refs/heads/site
Commit: 2175c66466a10dbae1345584217338c2b46fbee9
Parents: f24896b
Author: Terence Yim <ch...@apache.org>
Authored: Thu May 21 14:47:35 2015 -0700
Committer: Terence Yim <ch...@apache.org>
Committed: Tue May 26 17:31:33 2015 -0700

----------------------------------------------------------------------
 pom.xml                                         |  4 +--
 .../twill/internal/ApplicationBundler.java      | 15 ++--------
 .../twill/internal/json/ArgumentsCodec.java     | 10 ++-----
 .../twill/internal/json/JvmOptionsCodec.java    | 10 ++-----
 .../json/TwillSpecificationAdapter.java         | 11 ++-----
 .../twill/internal/utils/Dependencies.java      |  5 +---
 .../apache/twill/internal/utils/Networks.java   |  9 ++----
 .../org/apache/twill/launcher/FindFreePort.java |  5 +---
 .../apache/twill/launcher/TwillLauncher.java    | 10 ++-----
 .../internal/utils/ApplicationBundlerTest.java  |  5 +---
 .../org/apache/twill/ext/BundledJarRunner.java  | 15 ++++------
 .../apache/twill/ext/BundledJarRunnerTest.java  | 12 ++------
 .../appmaster/ApplicationMasterService.java     | 12 +++-----
 .../internal/container/TwillContainerMain.java  | 10 ++-----
 .../internal/yarn/AbstractYarnTwillService.java |  5 +---
 .../apache/twill/yarn/YarnTwillPreparer.java    | 30 ++++++--------------
 .../twill/yarn/YarnTwillRunnerService.java      | 10 ++-----
 .../org/apache/twill/yarn/DistributedShell.java |  7 ++---
 .../apache/twill/yarn/EchoServerTestRun.java    |  9 +++---
 .../twill/yarn/FailureRestartTestRun.java       |  5 +---
 .../org/apache/twill/yarn/LocalFileTestRun.java | 10 ++-----
 .../twill/yarn/ResourceReportTestRun.java       | 18 ++++++------
 .../org/apache/twill/yarn/SocketServer.java     | 13 +++------
 23 files changed, 66 insertions(+), 174 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f41e075..ec43e8b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -298,8 +298,8 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.1</version>
                 <configuration>
-                    <source>1.6</source>
-                    <target>1.6</target>
+                    <source>1.7</source>
+                    <target>1.7</target>
                 </configuration>
             </plugin>
             <plugin>

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/ApplicationBundler.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/ApplicationBundler.java b/twill-core/src/main/java/org/apache/twill/internal/ApplicationBundler.java
index 1f8326d..c09b881 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/ApplicationBundler.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/ApplicationBundler.java
@@ -130,8 +130,7 @@ public final class ApplicationBundler {
     File tmpJar = File.createTempFile(target.getName(), ".tmp");
     try {
       Set<String> entries = Sets.newHashSet();
-      JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(tmpJar));
-      try {
+      try (JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(tmpJar))) {
         // Find class dependencies
         findDependencies(classes, entries, jarOut);
 
@@ -139,8 +138,6 @@ public final class ApplicationBundler {
         for (URI resource : resources) {
           copyResource(resource, entries, jarOut);
         }
-      } finally {
-        jarOut.close();
       }
       LOG.debug("copying temporary bundle to destination {} ({} bytes)", target, tmpJar.length());
       // Copy the tmp jar into destination.
@@ -268,9 +265,8 @@ public final class ApplicationBundler {
     LOG.trace("adding bundle entry " + entry);
     try {
       JarEntry jarEntry = new JarEntry(entry);
-      InputStream is = url.openStream();
 
-      try {
+      try (InputStream is = url.openStream()) {
         if (compress) {
           jarOut.putNextEntry(jarEntry);
           ByteStreams.copy(is, jarOut);
@@ -288,8 +284,6 @@ public final class ApplicationBundler {
           jarOut.putNextEntry(jarEntry);
           os.transfer(jarOut);
         }
-      } finally {
-        is.close();
       }
       jarOut.closeEntry();
     } catch (Exception e) {
@@ -350,11 +344,8 @@ public final class ApplicationBundler {
     if (entries.add(path)) {
       saveDirEntry(prefix, entries, jarOut);
       jarOut.putNextEntry(new JarEntry(path));
-      InputStream is = url.openStream();
-      try {
+      try (InputStream is = url.openStream()) {
         ByteStreams.copy(is, jarOut);
-      } finally {
-        is.close();
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/json/ArgumentsCodec.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/json/ArgumentsCodec.java b/twill-core/src/main/java/org/apache/twill/internal/json/ArgumentsCodec.java
index 484231f..341d3ee 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/json/ArgumentsCodec.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/json/ArgumentsCodec.java
@@ -49,21 +49,15 @@ public final class ArgumentsCodec implements JsonSerializer<Arguments>, JsonDese
                                                     .create();
 
   public static void encode(Arguments arguments, OutputSupplier<? extends Writer> writerSupplier) throws IOException {
-    Writer writer = writerSupplier.getOutput();
-    try {
+    try (Writer writer = writerSupplier.getOutput()) {
       GSON.toJson(arguments, writer);
-    } finally {
-      writer.close();
     }
   }
 
 
   public static Arguments decode(InputSupplier<? extends Reader> readerSupplier) throws IOException {
-    Reader reader = readerSupplier.getInput();
-    try {
+    try (Reader reader = readerSupplier.getInput()) {
       return GSON.fromJson(reader, Arguments.class);
-    } finally {
-      reader.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/json/JvmOptionsCodec.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/json/JvmOptionsCodec.java b/twill-core/src/main/java/org/apache/twill/internal/json/JvmOptionsCodec.java
index 09fc91b..807840f 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/json/JvmOptionsCodec.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/json/JvmOptionsCodec.java
@@ -49,20 +49,14 @@ public class JvmOptionsCodec implements JsonSerializer<JvmOptions>, JsonDeserial
                                                     .create();
 
   public static void encode(JvmOptions jvmOptions, OutputSupplier<? extends Writer> writerSupplier) throws IOException {
-    Writer writer = writerSupplier.getOutput();
-    try {
+    try (Writer writer = writerSupplier.getOutput()) {
       GSON.toJson(jvmOptions, writer);
-    } finally {
-      writer.close();
     }
   }
 
   public static JvmOptions decode(InputSupplier<? extends Reader> readerSupplier) throws IOException {
-    Reader reader = readerSupplier.getInput();
-    try {
+    try (Reader reader = readerSupplier.getInput()) {
       return GSON.fromJson(reader, JvmOptions.class);
-    } finally {
-      reader.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/json/TwillSpecificationAdapter.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/json/TwillSpecificationAdapter.java b/twill-core/src/main/java/org/apache/twill/internal/json/TwillSpecificationAdapter.java
index d882096..eda0c71 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/json/TwillSpecificationAdapter.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/json/TwillSpecificationAdapter.java
@@ -82,11 +82,8 @@ public final class TwillSpecificationAdapter {
   }
 
   public void toJson(TwillSpecification spec, File file) throws IOException {
-    Writer writer = Files.newWriter(file, Charsets.UTF_8);
-    try {
+    try (Writer writer = Files.newWriter(file, Charsets.UTF_8)) {
       toJson(spec, writer);
-    } finally {
-      writer.close();
     }
   }
 
@@ -99,17 +96,15 @@ public final class TwillSpecificationAdapter {
   }
 
   public TwillSpecification fromJson(File file) throws IOException {
-    Reader reader = Files.newReader(file, Charsets.UTF_8);
-    try {
+    try (Reader reader = Files.newReader(file, Charsets.UTF_8)) {
       return fromJson(reader);
-    } finally {
-      reader.close();
     }
   }
 
   // This is to get around gson ignoring of inner class
   private static final class TwillSpecificationTypeAdapterFactory implements TypeAdapterFactory {
 
+    @SuppressWarnings("unchecked")
     @Override
     public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
       Class<?> rawType = type.getRawType();

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/utils/Dependencies.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/utils/Dependencies.java b/twill-core/src/main/java/org/apache/twill/internal/utils/Dependencies.java
index 90f9d18..f6f8dde 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/utils/Dependencies.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/utils/Dependencies.java
@@ -97,8 +97,7 @@ public final class Dependencies {
         continue;
       }
 
-      InputStream is = classUrl.openStream();
-      try {
+      try (InputStream is = classUrl.openStream()) {
         // Visit the bytecode to lookup classes that the visiting class is depended on.
         new ClassReader(ByteStreams.toByteArray(is)).accept(new DependencyClassVisitor(new DependencyAcceptor() {
           @Override
@@ -109,8 +108,6 @@ public final class Dependencies {
             }
           }
         }), ClassReader.SKIP_DEBUG + ClassReader.SKIP_FRAMES);
-      } finally {
-        is.close();
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/internal/utils/Networks.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/internal/utils/Networks.java b/twill-core/src/main/java/org/apache/twill/internal/utils/Networks.java
index 8e7d736..f60c7b6 100644
--- a/twill-core/src/main/java/org/apache/twill/internal/utils/Networks.java
+++ b/twill-core/src/main/java/org/apache/twill/internal/utils/Networks.java
@@ -30,13 +30,8 @@ public final class Networks {
    * @return A port number or -1 for failure.
    */
   public static int getRandomPort() {
-    try {
-      ServerSocket socket = new ServerSocket(0);
-      try {
-        return socket.getLocalPort();
-      } finally {
-        socket.close();
-      }
+    try (ServerSocket socket = new ServerSocket(0)) {
+      return socket.getLocalPort();
     } catch (IOException e) {
       return -1;
     }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/launcher/FindFreePort.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/launcher/FindFreePort.java b/twill-core/src/main/java/org/apache/twill/launcher/FindFreePort.java
index 89e6b57..702a68d 100644
--- a/twill-core/src/main/java/org/apache/twill/launcher/FindFreePort.java
+++ b/twill-core/src/main/java/org/apache/twill/launcher/FindFreePort.java
@@ -25,11 +25,8 @@ import java.net.ServerSocket;
 public class FindFreePort {
 
   public static void main(String[] args) throws Exception {
-    ServerSocket socket = new ServerSocket(0);
-    try {
+    try (ServerSocket socket = new ServerSocket(0)) {
       System.out.println(socket.getLocalPort());
-    } finally {
-      socket.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/main/java/org/apache/twill/launcher/TwillLauncher.java
----------------------------------------------------------------------
diff --git a/twill-core/src/main/java/org/apache/twill/launcher/TwillLauncher.java b/twill-core/src/main/java/org/apache/twill/launcher/TwillLauncher.java
index 028d638..3484349 100644
--- a/twill-core/src/main/java/org/apache/twill/launcher/TwillLauncher.java
+++ b/twill-core/src/main/java/org/apache/twill/launcher/TwillLauncher.java
@@ -112,8 +112,7 @@ public final class TwillLauncher {
   }
 
   private static void unJar(File jarFile, File targetDir) throws IOException {
-    JarInputStream jarInput = new JarInputStream(new FileInputStream(jarFile));
-    try {
+    try (JarInputStream jarInput = new JarInputStream(new FileInputStream(jarFile))) {
       JarEntry jarEntry = jarInput.getNextJarEntry();
       while (jarEntry != null) {
         File target = new File(targetDir, jarEntry.getName());
@@ -125,22 +124,17 @@ public final class TwillLauncher {
         }
         jarEntry = jarInput.getNextJarEntry();
       }
-    } finally {
-      jarInput.close();
     }
   }
 
   private static void copy(InputStream is, File file) throws IOException {
     byte[] buf = new byte[8192];
-    OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
-    try {
+    try (OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {
       int len = is.read(buf);
       while (len != -1) {
         os.write(buf, 0, len);
         len = is.read(buf);
       }
-    } finally {
-      os.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-core/src/test/java/org/apache/twill/internal/utils/ApplicationBundlerTest.java
----------------------------------------------------------------------
diff --git a/twill-core/src/test/java/org/apache/twill/internal/utils/ApplicationBundlerTest.java b/twill-core/src/test/java/org/apache/twill/internal/utils/ApplicationBundlerTest.java
index 38d0a05..16c6c78 100644
--- a/twill-core/src/test/java/org/apache/twill/internal/utils/ApplicationBundlerTest.java
+++ b/twill-core/src/test/java/org/apache/twill/internal/utils/ApplicationBundlerTest.java
@@ -69,8 +69,7 @@ public class ApplicationBundlerTest {
   }
 
   private void unjar(File jarFile, File targetDir) throws IOException {
-    JarInputStream jarInput = new JarInputStream(new FileInputStream(jarFile));
-    try {
+    try (JarInputStream jarInput = new JarInputStream(new FileInputStream(jarFile))) {
       JarEntry jarEntry = jarInput.getNextJarEntry();
       while (jarEntry != null) {
         File target = new File(targetDir, jarEntry.getName());
@@ -83,8 +82,6 @@ public class ApplicationBundlerTest {
 
         jarEntry = jarInput.getNextJarEntry();
       }
-    } finally {
-      jarInput.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-ext/src/main/java/org/apache/twill/ext/BundledJarRunner.java
----------------------------------------------------------------------
diff --git a/twill-ext/src/main/java/org/apache/twill/ext/BundledJarRunner.java b/twill-ext/src/main/java/org/apache/twill/ext/BundledJarRunner.java
index 0398b8a..4b8641e 100644
--- a/twill-ext/src/main/java/org/apache/twill/ext/BundledJarRunner.java
+++ b/twill-ext/src/main/java/org/apache/twill/ext/BundledJarRunner.java
@@ -134,16 +134,11 @@ public class BundledJarRunner {
       } else {
         output.getParentFile().mkdirs();
 
-        OutputStream os = new FileOutputStream(output);
-        try {
-          InputStream is = jarFile.getInputStream(entry);
-          try {
-            ByteStreams.copy(is, os);
-          } finally {
-            is.close();
-          }
-        } finally {
-          os.close();
+        try (
+          OutputStream os = new FileOutputStream(output);
+          InputStream is = jarFile.getInputStream(entry)
+        ) {
+          ByteStreams.copy(is, os);
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-ext/src/test/java/org/apache/twill/ext/BundledJarRunnerTest.java
----------------------------------------------------------------------
diff --git a/twill-ext/src/test/java/org/apache/twill/ext/BundledJarRunnerTest.java b/twill-ext/src/test/java/org/apache/twill/ext/BundledJarRunnerTest.java
index f534c90..8cfa150 100644
--- a/twill-ext/src/test/java/org/apache/twill/ext/BundledJarRunnerTest.java
+++ b/twill-ext/src/test/java/org/apache/twill/ext/BundledJarRunnerTest.java
@@ -18,7 +18,6 @@
 package org.apache.twill.ext;
 
 import com.google.common.io.ByteStreams;
-
 import org.junit.Assert;
 import org.junit.ClassRule;
 import org.junit.Test;
@@ -87,18 +86,13 @@ public class BundledJarRunnerTest {
   private void createJarFileFromClass(String className, File jarfile) throws IOException {
     String classAsPath = className.replace(".", "/") + ".class";
     String packagePath = classAsPath.substring(0, classAsPath.lastIndexOf("/") + 1);
-    FileOutputStream fout = null;
-    JarOutputStream jarout = null;
-    try {
-      fout = new FileOutputStream(jarfile.getAbsolutePath());
-      jarout = new JarOutputStream(fout);
+    try (
+      JarOutputStream jarout = new JarOutputStream(new FileOutputStream(jarfile.getAbsolutePath()))
+    ) {
       jarout.putNextEntry(new ZipEntry(packagePath));
       jarout.putNextEntry(new ZipEntry(classAsPath));
       jarout.write(getClassBytes(classAsPath));
       jarout.closeEntry();
-    } finally {
-      jarout.close();
-      fout.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java b/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java
index 8f8952b..1ebeabe 100644
--- a/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java
+++ b/twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java
@@ -640,14 +640,10 @@ public final class ApplicationMasterService extends AbstractYarnTwillService imp
   }
 
   private List<LocalFile> getLocalizeFiles() {
-    try {
-      Reader reader = Files.newReader(new File(Constants.Files.LOCALIZE_FILES), Charsets.UTF_8);
-      try {
-        return new GsonBuilder().registerTypeAdapter(LocalFile.class, new LocalFileCodec())
-                                .create().fromJson(reader, new TypeToken<List<LocalFile>>() { }.getType());
-      } finally {
-        reader.close();
-      }
+    try (Reader reader = Files.newReader(new File(Constants.Files.LOCALIZE_FILES), Charsets.UTF_8)) {
+      return new GsonBuilder().registerTypeAdapter(LocalFile.class, new LocalFileCodec())
+        .create().fromJson(reader, new TypeToken<List<LocalFile>>() {
+        }.getType());
     } catch (IOException e) {
       throw Throwables.propagate(e);
     }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/main/java/org/apache/twill/internal/container/TwillContainerMain.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/main/java/org/apache/twill/internal/container/TwillContainerMain.java b/twill-yarn/src/main/java/org/apache/twill/internal/container/TwillContainerMain.java
index c493b6c..0545b4b 100644
--- a/twill-yarn/src/main/java/org/apache/twill/internal/container/TwillContainerMain.java
+++ b/twill-yarn/src/main/java/org/apache/twill/internal/container/TwillContainerMain.java
@@ -118,11 +118,8 @@ public final class TwillContainerMain extends ServiceMain {
     File file = new File(Constants.Files.CREDENTIALS);
     if (file.exists()) {
       Credentials credentials = new Credentials();
-      DataInputStream input = new DataInputStream(new FileInputStream(file));
-      try {
+      try (DataInputStream input = new DataInputStream(new FileInputStream(file))) {
         credentials.readTokenStorageStream(input);
-      } finally {
-        input.close();
       }
 
       UserGroupInformation.getCurrentUser().addCredentials(credentials);
@@ -165,11 +162,8 @@ public final class TwillContainerMain extends ServiceMain {
   }
 
   private static TwillSpecification loadTwillSpec(File specFile) throws IOException {
-    Reader reader = Files.newReader(specFile, Charsets.UTF_8);
-    try {
+    try (Reader reader = Files.newReader(specFile, Charsets.UTF_8)) {
       return TwillSpecificationAdapter.create().fromJson(reader);
-    } finally {
-      reader.close();
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnTwillService.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnTwillService.java b/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnTwillService.java
index 961bc30..64f81b4 100644
--- a/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnTwillService.java
+++ b/twill-yarn/src/main/java/org/apache/twill/internal/yarn/AbstractYarnTwillService.java
@@ -83,11 +83,8 @@ public abstract class AbstractYarnTwillService extends AbstractTwillService {
     try {
       Credentials credentials = new Credentials();
       Location location = getSecureStoreLocation();
-      DataInputStream input = new DataInputStream(new BufferedInputStream(location.getInputStream()));
-      try {
+      try (DataInputStream input = new DataInputStream(new BufferedInputStream(location.getInputStream()))) {
         credentials.readTokenStorageStream(input);
-      } finally {
-        input.close();
       }
 
       UserGroupInformation.getCurrentUser().addCredentials(credentials);

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillPreparer.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillPreparer.java b/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillPreparer.java
index ee889a8..3ae27bf 100644
--- a/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillPreparer.java
+++ b/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillPreparer.java
@@ -449,8 +449,7 @@ final class YarnTwillPreparer implements TwillPreparer {
     // Serialize into a local temp file.
     LOG.debug("Create and copy {}", Constants.Files.TWILL_SPEC);
     Location location = createTempLocation(Constants.Files.TWILL_SPEC);
-    Writer writer = new OutputStreamWriter(location.getOutputStream(), Charsets.UTF_8);
-    try {
+    try (Writer writer = new OutputStreamWriter(location.getOutputStream(), Charsets.UTF_8)) {
       EventHandlerSpecification eventHandler = spec.getEventHandler();
       if (eventHandler == null) {
         eventHandler = new LogOnlyEventHandler().configure();
@@ -459,8 +458,6 @@ final class YarnTwillPreparer implements TwillPreparer {
       TwillSpecificationAdapter.create().toJson(
         new DefaultTwillSpecification(spec.getName(), runtimeSpec, spec.getOrders(), spec.getPlacementPolicies(),
                                       eventHandler), writer);
-    } finally {
-      writer.close();
     }
     LOG.debug("Done {}", Constants.Files.TWILL_SPEC);
 
@@ -501,11 +498,8 @@ final class YarnTwillPreparer implements TwillPreparer {
                                     "Launcher jar should not have dependencies: %s", className);
         try {
           jarOut.putNextEntry(new JarEntry(className.replace('.', '/') + ".class"));
-          InputStream is = classUrl.openStream();
-          try {
+          try (InputStream is = classUrl.openStream()) {
             ByteStreams.copy(is, jarOut);
-          } finally {
-            is.close();
           }
         } catch (IOException e) {
           throw Throwables.propagate(e);
@@ -567,29 +561,21 @@ final class YarnTwillPreparer implements TwillPreparer {
     Map<String, LocalFile> localize = ImmutableMap.copyOf(Maps.filterKeys(localFiles, Predicates.in(includes)));
     LOG.debug("Create and copy {}", Constants.Files.LOCALIZE_FILES);
     Location location = createTempLocation(Constants.Files.LOCALIZE_FILES);
-    Writer writer = new OutputStreamWriter(location.getOutputStream(), Charsets.UTF_8);
-    try {
+    try (Writer writer = new OutputStreamWriter(location.getOutputStream(), Charsets.UTF_8)) {
       new GsonBuilder().registerTypeAdapter(LocalFile.class, new LocalFileCodec())
         .create().toJson(localize.values(), new TypeToken<List<LocalFile>>() {
       }.getType(), writer);
-    } finally {
-      writer.close();
     }
     LOG.debug("Done {}", Constants.Files.LOCALIZE_FILES);
     localFiles.put(Constants.Files.LOCALIZE_FILES, createLocalFile(Constants.Files.LOCALIZE_FILES, location));
   }
 
   private Location copyFromURL(URL url, Location target) throws IOException {
-    InputStream is = url.openStream();
-    try {
-      OutputStream os = new BufferedOutputStream(target.getOutputStream());
-      try {
-        ByteStreams.copy(is, os);
-      } finally {
-        os.close();
-      }
-    } finally {
-      is.close();
+    try (
+      InputStream is = url.openStream();
+      OutputStream os = new BufferedOutputStream(target.getOutputStream())
+    ) {
+      ByteStreams.copy(is, os);
     }
     return target;
   }

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillRunnerService.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillRunnerService.java b/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillRunnerService.java
index 690d41e..73f467f 100644
--- a/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillRunnerService.java
+++ b/twill-yarn/src/main/java/org/apache/twill/yarn/YarnTwillRunnerService.java
@@ -587,11 +587,8 @@ public final class YarnTwillRunnerService implements TwillRunnerService {
     // Try to read the old credentials.
     Credentials credentials = new Credentials();
     if (credentialsLocation.exists()) {
-      DataInputStream is = new DataInputStream(new BufferedInputStream(credentialsLocation.getInputStream()));
-      try {
+      try (DataInputStream is = new DataInputStream(new BufferedInputStream(credentialsLocation.getInputStream()))) {
         credentials.readTokenStorageStream(is);
-      } finally {
-        is.close();
       }
     }
 
@@ -602,11 +599,8 @@ public final class YarnTwillRunnerService implements TwillRunnerService {
     Location tmpLocation = credentialsLocation.getTempFile(Constants.Files.CREDENTIALS);
 
     // Save the credentials store with user-only permission.
-    DataOutputStream os = new DataOutputStream(new BufferedOutputStream(tmpLocation.getOutputStream("600")));
-    try {
+    try (DataOutputStream os = new DataOutputStream(new BufferedOutputStream(tmpLocation.getOutputStream("600")))) {
       credentials.writeTokenStorageToStream(os);
-    } finally {
-      os.close();
     }
 
     // Rename the tmp file into the credentials location

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/DistributedShell.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/DistributedShell.java b/twill-yarn/src/test/java/org/apache/twill/yarn/DistributedShell.java
index fb37820..18691a0 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/DistributedShell.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/DistributedShell.java
@@ -47,15 +47,14 @@ public final class DistributedShell extends AbstractTwillRunnable {
       try {
         Process process = new ProcessBuilder(ImmutableList.copyOf(Splitter.on(' ').split(cmd)))
                               .redirectErrorStream(true).start();
-        BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), Charsets.US_ASCII));
-        try {
+        try (
+          BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream(), Charsets.US_ASCII))
+        ) {
           String line = reader.readLine();
           while (line != null) {
             LOG.info(line);
             line = reader.readLine();
           }
-        } finally {
-          reader.close();
         }
       } catch (IOException e) {
         LOG.error("Fail to execute command " + cmd, e);

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java
index bb525a8..d635af1 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java
@@ -81,16 +81,15 @@ public final class EchoServerTestRun extends BaseYarnTest {
     for (Discoverable discoverable : echoServices) {
       String msg = "Hello: " + discoverable.getSocketAddress();
 
-      Socket socket = new Socket(discoverable.getSocketAddress().getAddress(),
-                                 discoverable.getSocketAddress().getPort());
-      try {
+      try (
+        Socket socket = new Socket(discoverable.getSocketAddress().getAddress(),
+                                   discoverable.getSocketAddress().getPort())
+      ) {
         PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8), true);
         LineReader reader = new LineReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
 
         writer.println(msg);
         Assert.assertEquals(msg, reader.readLine());
-      } finally {
-        socket.close();
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
index a0c195d..8525b3b 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/FailureRestartTestRun.java
@@ -84,8 +84,7 @@ public final class FailureRestartTestRun extends BaseYarnTest {
     Set<Integer> instances = Sets.newHashSet();
     for (Discoverable discoverable : discoverables) {
       InetSocketAddress socketAddress = discoverable.getSocketAddress();
-      Socket socket = new Socket(socketAddress.getAddress(), socketAddress.getPort());
-      try {
+      try (Socket socket = new Socket(socketAddress.getAddress(), socketAddress.getPort())) {
         PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8), true);
         LineReader reader = new LineReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
 
@@ -95,8 +94,6 @@ public final class FailureRestartTestRun extends BaseYarnTest {
         String line = reader.readLine();
         Assert.assertTrue(line.endsWith(msg));
         instances.add(Integer.parseInt(line.substring(0, line.length() - msg.length())));
-      } finally {
-        socket.close();
       }
     }
     return instances;

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/LocalFileTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/LocalFileTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/LocalFileTestRun.java
index fd146f2..e20dd64 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/LocalFileTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/LocalFileTestRun.java
@@ -69,8 +69,7 @@ public final class LocalFileTestRun extends BaseYarnTest {
     Assert.assertTrue(waitForSize(discoverables, 1, 60));
 
     InetSocketAddress socketAddress = discoverables.iterator().next().getSocketAddress();
-    Socket socket = new Socket(socketAddress.getAddress(), socketAddress.getPort());
-    try {
+    try (Socket socket = new Socket(socketAddress.getAddress(), socketAddress.getPort())) {
       PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8), true);
       LineReader reader = new LineReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
 
@@ -78,8 +77,6 @@ public final class LocalFileTestRun extends BaseYarnTest {
       writer.println(msg);
       Assert.assertEquals(header, reader.readLine());
       Assert.assertEquals(msg, reader.readLine());
-    } finally {
-      socket.close();
     }
 
     controller.terminate().get(120, TimeUnit.SECONDS);
@@ -99,12 +96,9 @@ public final class LocalFileTestRun extends BaseYarnTest {
     public LocalFileApplication() throws Exception {
       // Create a jar file that contains the header.txt file inside.
       headerFile = tmpFolder.newFile("header.jar");
-      JarOutputStream os = new JarOutputStream(new FileOutputStream(headerFile));
-      try {
+      try (JarOutputStream os = new JarOutputStream(new FileOutputStream(headerFile))) {
         os.putNextEntry(new JarEntry("header.txt"));
         ByteStreams.copy(getClass().getClassLoader().getResourceAsStream("header.txt"), os);
-      } finally {
-        os.close();
       }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java b/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
index 50f1e08..86dfeaf 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/ResourceReportTestRun.java
@@ -114,15 +114,14 @@ public final class ResourceReportTestRun extends BaseYarnTest {
     // check environment of the runnable.
     Discoverable discoverable = envEchoServices.iterator().next();
     for (Map.Entry<String, String> expected : expectedValues.entrySet()) {
-      Socket socket = new Socket(discoverable.getSocketAddress().getHostName(),
-                                 discoverable.getSocketAddress().getPort());
-      try {
+      try (
+        Socket socket = new Socket(discoverable.getSocketAddress().getHostName(),
+                                   discoverable.getSocketAddress().getPort())
+      ) {
         PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8), true);
         LineReader reader = new LineReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
         writer.println(expected.getKey());
         Assert.assertEquals(expected.getValue(), reader.readLine());
-      } finally {
-        socket.close();
       }
     }
 
@@ -165,13 +164,12 @@ public final class ResourceReportTestRun extends BaseYarnTest {
 
     // cause a divide by 0 in one server
     Discoverable discoverable = echoServices.iterator().next();
-    Socket socket = new Socket(discoverable.getSocketAddress().getAddress(),
-                               discoverable.getSocketAddress().getPort());
-    try {
+    try (
+      Socket socket = new Socket(discoverable.getSocketAddress().getAddress(),
+                                 discoverable.getSocketAddress().getPort())
+    ) {
       PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), Charsets.UTF_8), true);
       writer.println("0");
-    } finally {
-      socket.close();
     }
 
     // takes some time for app master to find out the container completed...

http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/2175c664/twill-yarn/src/test/java/org/apache/twill/yarn/SocketServer.java
----------------------------------------------------------------------
diff --git a/twill-yarn/src/test/java/org/apache/twill/yarn/SocketServer.java b/twill-yarn/src/test/java/org/apache/twill/yarn/SocketServer.java
index 8c37b78..fd38576 100644
--- a/twill-yarn/src/test/java/org/apache/twill/yarn/SocketServer.java
+++ b/twill-yarn/src/test/java/org/apache/twill/yarn/SocketServer.java
@@ -78,15 +78,10 @@ public abstract class SocketServer extends AbstractTwillRunnable {
   public void run() {
     try {
       while (running) {
-        try {
-          Socket socket = serverSocket.accept();
-          try {
-            BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
-            PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
-            handleRequest(reader, writer);
-          } finally {
-            socket.close();
-          }
+        try (Socket socket = serverSocket.accept()) {
+          BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), Charsets.UTF_8));
+          PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
+          handleRequest(reader, writer);
         } catch (SocketException e) {
           LOG.info("Socket exception: " + e);
         }