SLIDER-94 templatize closing service

git-svn-id: https://svn.apache.org/repos/asf/incubator/slider/trunk@1596253 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/utility/ClosingService.java b/slider-core/src/main/java/org/apache/slider/server/services/utility/ClosingService.java
index 01f27a6..8864bf9 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/utility/ClosingService.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/utility/ClosingService.java
@@ -26,13 +26,13 @@
 /**
  * Service that closes the closeable supplied during shutdown, if not null.
  */
-public class ClosingService extends AbstractService {
+public class ClosingService<C extends Closeable> extends AbstractService {
 
-  private Closeable closeable;
+  private volatile C closeable;
 
 
   public ClosingService(String name,
-                        Closeable closeable) {
+                        C closeable) {
     super(name);
     this.closeable = closeable;
   }
@@ -42,7 +42,7 @@
     return closeable;
   }
 
-  public void setCloseable(Closeable closeable) {
+  public void setCloseable(C closeable) {
     this.closeable = closeable;
   }
 
@@ -55,6 +55,5 @@
   protected void serviceStop() throws Exception {
     IOUtils.closeStream(closeable);
     closeable = null;
-
   }
 }