You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by do...@apache.org on 2016/01/12 22:57:56 UTC

reef git commit: [REEF-802] Fix medium-priority warnings reported by Findbugs, part 2

Repository: reef
Updated Branches:
  refs/heads/master ceacf2032 -> 0e88ee423


[REEF-802] Fix medium-priority warnings reported by Findbugs, part 2

This change fixes or configures to be ignored meduim-priority bugs
in all Java code and enforces medium-priority bugs to break the build.

JIRA:
  [REEF-802](https://issues.apache.org/jira/browse/REEF-802)

Pull request:
  This closes #761


Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/0e88ee42
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/0e88ee42
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/0e88ee42

Branch: refs/heads/master
Commit: 0e88ee4230e70f182a73d31aeafaf404424c2d0d
Parents: ceacf20
Author: Mariia Mykhailova <ma...@apache.org>
Authored: Mon Jan 11 14:27:25 2016 -0800
Committer: Dongjoon Hyun <do...@apache.org>
Committed: Tue Jan 12 13:57:03 2016 -0800

----------------------------------------------------------------------
 .../org/apache/reef/client/DriverLauncher.java  | 12 +++--
 .../ConfigurableDirectoryTempFileCreator.java   |  4 +-
 .../io/WorkingDirectoryTempFileCreator.java     |  4 +-
 .../reef/runtime/common/files/JobJarMaker.java  | 12 ++---
 .../java/org/apache/reef/util/JARFileMaker.java | 14 ++++--
 .../main/java/org/apache/reef/util/OSUtils.java |  8 +++-
 .../src/main/resources/findbugs-exclude.xml     | 46 ++++++++++++++++++++
 .../io/data/loading/impl/NumberedSplit.java     | 18 ++++++++
 .../output/TaskOutputStreamProviderLocal.java   |  7 ++-
 .../impl/task/GroupCommNetworkHandlerImpl.java  | 13 +++---
 .../impl/task/OperatorTopologyStructImpl.java   |  2 +-
 .../group/impl/utils/ScatterDecoder.java        | 11 ++++-
 .../impl/NetworkConnectionServiceMessage.java   |  2 +-
 .../NetworkConnectionServiceMessageCodec.java   |  7 ++-
 .../reef/io/network/naming/NameClient.java      |  9 +++-
 .../io/network/naming/NameLookupClient.java     |  5 ++-
 .../io/network/naming/NameRegistryClient.java   |  5 ++-
 .../apache/reef/io/watcher/FileEventStream.java | 12 +++--
 .../client/yarnrest/AmContainerSpec.java        |  2 +-
 .../client/yarnrest/ApplicationID.java          |  2 +-
 .../client/yarnrest/ApplicationResponse.java    |  2 +-
 .../client/yarnrest/ApplicationState.java       |  2 +-
 .../client/yarnrest/ApplicationSubmission.java  |  2 +-
 .../hdinsight/client/yarnrest/Commands.java     |  2 +-
 .../hdinsight/client/yarnrest/Credentials.java  |  2 +-
 .../yarnrest/ListApplicationResponse.java       |  2 +-
 .../client/yarnrest/LocalResource.java          |  2 +-
 .../client/yarnrest/LocalResourcesEntry.java    |  2 +-
 .../hdinsight/client/yarnrest/Resource.java     |  2 +-
 .../hdinsight/client/yarnrest/StringEntry.java  |  2 +-
 .../wake/examples/accumulate/CombinerStage.java | 18 ++++++++
 .../reef/wake/examples/join/TupleEvent.java     | 25 +++++++++++
 pom.xml                                         |  2 +-
 33 files changed, 211 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/client/DriverLauncher.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/client/DriverLauncher.java b/lang/java/reef-common/src/main/java/org/apache/reef/client/DriverLauncher.java
index 55bc1ad..b10aacb 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/client/DriverLauncher.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/client/DriverLauncher.java
@@ -112,7 +112,9 @@ public final class DriverLauncher {
       }
     }
     this.reef.close();
-    return this.status;
+    synchronized (this) {
+      return this.status;
+    }
   }
 
   /**
@@ -145,14 +147,18 @@ public final class DriverLauncher {
     }
 
     this.reef.close();
-    return this.status;
+    synchronized (this) {
+      return this.status;
+    }
   }
 
   /**
    * @return the current status of the job.
    */
   public LauncherStatus getStatus() {
-    return this.status;
+    synchronized (this) {
+      return this.status;
+    }
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/io/ConfigurableDirectoryTempFileCreator.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/io/ConfigurableDirectoryTempFileCreator.java b/lang/java/reef-common/src/main/java/org/apache/reef/io/ConfigurableDirectoryTempFileCreator.java
index 61bc6f4..9d9b439 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/io/ConfigurableDirectoryTempFileCreator.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/io/ConfigurableDirectoryTempFileCreator.java
@@ -44,7 +44,9 @@ public final class ConfigurableDirectoryTempFileCreator implements TempFileCreat
   ConfigurableDirectoryTempFileCreator(
       @Parameter(TempFileRootFolder.class) final String rootFolder) throws IOException {
     this.tempFolderAsFile = new File(rootFolder);
-    this.tempFolderAsFile.mkdirs();
+    if (!this.tempFolderAsFile.exists() && !this.tempFolderAsFile.mkdirs()) {
+      LOG.log(Level.WARNING, "Failed to create [{0}]", this.tempFolderAsFile.getAbsolutePath());
+    }
     this.tempFolderAsPath = this.tempFolderAsFile.toPath();
     LOG.log(Level.FINE, "Temporary files and folders will be created in [{0}]",
         this.tempFolderAsFile.getAbsolutePath());

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/io/WorkingDirectoryTempFileCreator.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/io/WorkingDirectoryTempFileCreator.java b/lang/java/reef-common/src/main/java/org/apache/reef/io/WorkingDirectoryTempFileCreator.java
index 9367a39..120b120 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/io/WorkingDirectoryTempFileCreator.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/io/WorkingDirectoryTempFileCreator.java
@@ -41,7 +41,9 @@ public final class WorkingDirectoryTempFileCreator implements TempFileCreator {
   @Inject
   WorkingDirectoryTempFileCreator() throws IOException {
     this.tempFolderAsFile = new File("./reef/temp");
-    this.tempFolderAsFile.mkdirs();
+    if (!this.tempFolderAsFile.exists() && !this.tempFolderAsFile.mkdirs()) {
+      LOG.log(Level.WARNING, "Failed to create [{0}]", this.tempFolderAsFile.getAbsolutePath());
+    }
     this.tempFolderAsPath = this.tempFolderAsFile.toPath();
     LOG.log(Level.FINE, "Temporary files and folders will be created in [{0}]",
         this.tempFolderAsFile.getAbsolutePath());

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/files/JobJarMaker.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/files/JobJarMaker.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/files/JobJarMaker.java
index 8dcc69a..6b45f0d 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/files/JobJarMaker.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/files/JobJarMaker.java
@@ -60,8 +60,8 @@ public final class JobJarMaker {
 
   public static void copy(final Iterable<FileResource> files, final File destinationFolder) {
 
-    if (!destinationFolder.exists()) {
-      destinationFolder.mkdirs();
+    if (!destinationFolder.exists() && !destinationFolder.mkdirs()) {
+      LOG.log(Level.WARNING, "Failed to create [{0}]", destinationFolder.getAbsolutePath());
     }
 
     for (final FileResource fileProto : files) {
@@ -103,8 +103,8 @@ public final class JobJarMaker {
     final File localFolder = new File(jobSubmissionFolder, this.fileNames.getLocalFolderName());
     final File globalFolder = new File(jobSubmissionFolder, this.fileNames.getGlobalFolderName());
 
-    this.copy(jobSubmissionEvent.getGlobalFileSet(), globalFolder);
-    this.copy(jobSubmissionEvent.getLocalFileSet(), localFolder);
+    copy(jobSubmissionEvent.getGlobalFileSet(), globalFolder);
+    copy(jobSubmissionEvent.getLocalFileSet(), localFolder);
 
     // Store the Driver Configuration in the JAR file.
     this.configurationSerializer.toFile(
@@ -120,7 +120,9 @@ public final class JobJarMaker {
       LOG.log(Level.FINE,
           "Deleting the temporary job folder [{0}] and marking the jar file [{1}] for deletion after the JVM exits.",
           new Object[]{jobSubmissionFolder.getAbsolutePath(), jarFile.getAbsolutePath()});
-      jobSubmissionFolder.delete();
+      if (!jobSubmissionFolder.delete()) {
+        LOG.log(Level.WARNING, "Failed to delete [{0}]", jobSubmissionFolder.getAbsolutePath());
+      }
       jarFile.deleteOnExit();
     } else {
       LOG.log(Level.FINE, "Keeping the temporary job folder [{0}] and jar file [{1}] available after job submission.",

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/util/JARFileMaker.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/util/JARFileMaker.java b/lang/java/reef-common/src/main/java/org/apache/reef/util/JARFileMaker.java
index 6fa88bf..418c880 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/util/JARFileMaker.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/util/JARFileMaker.java
@@ -62,8 +62,11 @@ public class JARFileMaker implements AutoCloseable {
       entry.setTime(inputFile.lastModified());
       this.jarOutputStream.putNextEntry(entry);
       this.jarOutputStream.closeEntry();
-      for (final File nestedFile : inputFile.listFiles()) {
-        add(nestedFile);
+      final File[] files = inputFile.listFiles();
+      if (files != null) {
+        for (final File nestedFile : files) {
+          add(nestedFile);
+        }
       }
       return this;
     }
@@ -82,8 +85,11 @@ public class JARFileMaker implements AutoCloseable {
 
   public JARFileMaker addChildren(final File folder) throws IOException {
     this.relativeStartCanonicalPath = folder.getCanonicalPath();
-    for (final File f : folder.listFiles()) {
-      this.add(f);
+    final File[] files = folder.listFiles();
+    if (files != null) {
+      for (final File f : files) {
+        this.add(f);
+      }
     }
     this.relativeStartCanonicalPath = null;
     return this;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/java/org/apache/reef/util/OSUtils.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/util/OSUtils.java b/lang/java/reef-common/src/main/java/org/apache/reef/util/OSUtils.java
index 8890f88..25e6531 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/util/OSUtils.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/util/OSUtils.java
@@ -78,7 +78,9 @@ public final class OSUtils {
             .command("bash", "-c", "echo $PPID")
             .start();
         final byte[] returnBytes = new byte[128];
-        process.getInputStream().read(returnBytes);
+        if (process.getInputStream().read(returnBytes) == -1) {
+          LOG.log(Level.FINE, "No data read because end of stream was reached");
+        }
         final Long result = Long.valueOf(new String(returnBytes, StandardCharsets.UTF_8).trim());
         process.destroy();
         return result;
@@ -93,7 +95,9 @@ public final class OSUtils {
                 "wmic process where processid=$pid get parentprocessid")
             .start();
         final byte[] returnBytes = new byte[128];
-        process.getInputStream().read(returnBytes);
+        if (process.getInputStream().read(returnBytes) == -1) {
+          LOG.log(Level.FINE, "No data read because end of stream was reached");
+        }
         final Long result = Long.valueOf(new String(returnBytes, StandardCharsets.UTF_8).split("\n")[1].trim());
         process.destroy();
         return result;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-common/src/main/resources/findbugs-exclude.xml
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/resources/findbugs-exclude.xml b/lang/java/reef-common/src/main/resources/findbugs-exclude.xml
index f7888d9..b69df5f 100644
--- a/lang/java/reef-common/src/main/resources/findbugs-exclude.xml
+++ b/lang/java/reef-common/src/main/resources/findbugs-exclude.xml
@@ -99,5 +99,51 @@
         <Class name="~org\.apache\.reef\.tang\.util\.AbstractMonotonicMultiMap.*" />
         <Bug code="NP" />
     </Match>
+    <Match>
+        <!-- TODO: reconsider calling System.exit(...) -->
+        <Class name="org.apache.reef.runtime.common.launch.REEFUncaughtExceptionHandler" />
+        <Bug pattern="DM_EXIT" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.runtime.common.client.api.JobSubmissionEventImpl$Builder" />
+        <Bug pattern="UWF_UNWRITTEN_FIELD" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.runtime.common.driver.resourcemanager.ResourceStatusEventImpl$Builder" />
+        <Bug pattern="URF_UNREAD_FIELD" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.io.network.impl.NetworkConnectionServiceMessage" />
+        <Bug pattern="URF_UNREAD_FIELD" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.io.network.util.Utils$AddressComparator" />
+        <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.io.data.loading.impl.AbstractEvaluatorToPartitionStrategy" />
+        <Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER" />
+    </Match>
+    <Match>
+        <Class name="~org\.apache\.reef\.wake\..*" />
+        <Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER" />
+    </Match>
+    <Match>
+        <!-- example code, won't be subclassed -->
+        <Class name="org.apache.reef.wake.examples.join.TupleSource" />
+        <Bug pattern="SC_START_IN_CTOR" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.wake.remote.address.LegacyLocalAddressProvider$AddressComparator" />
+        <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.wake.remote.impl.RemoteEventComparator" />
+        <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
+    </Match>
+    <Match>
+        <Class name="org.apache.reef.wake.time.runtime.RuntimeClock" />
+        <Bug pattern="REC_CATCH_EXCEPTION" />
+    </Match>
 
 </FindBugsFilter>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/data/loading/impl/NumberedSplit.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/data/loading/impl/NumberedSplit.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/data/loading/impl/NumberedSplit.java
index cfbcfe1..8e5896d 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/data/loading/impl/NumberedSplit.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/data/loading/impl/NumberedSplit.java
@@ -62,6 +62,24 @@ public final class NumberedSplit<E> implements Comparable<NumberedSplit<E>> {
   }
 
   @Override
+  public boolean equals(final Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+
+    NumberedSplit<?> that = (NumberedSplit<?>) o;
+    return index == that.index;
+  }
+
+  @Override
+  public int hashCode() {
+    return index;
+  }
+
+  @Override
   public int compareTo(final NumberedSplit<E> o) {
     if (this.index == o.index) {
       return 0;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/data/output/TaskOutputStreamProviderLocal.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/data/output/TaskOutputStreamProviderLocal.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/data/output/TaskOutputStreamProviderLocal.java
index f3afb89..f44b126 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/data/output/TaskOutputStreamProviderLocal.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/data/output/TaskOutputStreamProviderLocal.java
@@ -25,12 +25,15 @@ import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Implementation of {@link TaskOutputStreamProvider}.
  * It provides FileOutputStreams on the local file system.
  */
 public final class TaskOutputStreamProviderLocal extends TaskOutputStreamProvider {
+  private static final Logger LOG = Logger.getLogger(TaskOutputStreamProviderLocal.class.getName());
 
   /**
    * Path of the output directory on the local disk to write outputs.
@@ -63,8 +66,8 @@ public final class TaskOutputStreamProviderLocal extends TaskOutputStreamProvide
     final File directory = new File(directoryPath);
 
     synchronized (TaskOutputStreamProviderLocal.class) {
-      if (!directory.exists()) {
-        directory.mkdirs();
+      if (!directory.exists() && !directory.mkdirs()) {
+        LOG.log(Level.WARNING, "Failed to create [{0}]", directory.getAbsolutePath());
       }
     }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/GroupCommNetworkHandlerImpl.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/GroupCommNetworkHandlerImpl.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/GroupCommNetworkHandlerImpl.java
index e018832..43a21a1 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/GroupCommNetworkHandlerImpl.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/GroupCommNetworkHandlerImpl.java
@@ -47,11 +47,14 @@ public class GroupCommNetworkHandlerImpl implements GroupCommNetworkHandler {
     LOG.entering("GroupCommNetworkHandlerImpl", "onNext", mesg);
     final Iterator<GroupCommunicationMessage> iter = mesg.getData().iterator();
     final GroupCommunicationMessage msg = iter.hasNext() ? iter.next() : null;
-    try {
-      final Class<? extends Name<String>> groupName = (Class<? extends Name<String>>) Class.forName(msg.getGroupname());
-      commGroupHandlers.get(groupName).onNext(msg);
-    } catch (final ClassNotFoundException e) {
-      throw new RuntimeException("GroupName not found", e);
+    if (msg != null) {
+      try {
+        final Class<? extends Name<String>> groupName =
+            (Class<? extends Name<String>>) Class.forName(msg.getGroupname());
+        commGroupHandlers.get(groupName).onNext(msg);
+      } catch (final ClassNotFoundException e) {
+        throw new RuntimeException("GroupName not found", e);
+      }
     }
     LOG.exiting("GroupCommNetworkHandlerImpl", "onNext", mesg);
   }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/OperatorTopologyStructImpl.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/OperatorTopologyStructImpl.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/OperatorTopologyStructImpl.java
index ff2f45c..b109485 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/OperatorTopologyStructImpl.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/task/OperatorTopologyStructImpl.java
@@ -429,7 +429,7 @@ public class OperatorTopologyStructImpl implements OperatorTopologyStruct {
       LOG.warning(getQualifiedName() + "Got dead msg when no node existed. OOS Queuing up for add to handle");
       addToDeadMsgs(msgSrcId, msgSrcVersion);
       LOG.exiting("OperatorTopologyStructImpl", "addedToDeadMsgs",
-          Arrays.toString(new Object[]{true, getQualifiedName(), node, msgSrcId, msgSrcVersion}));
+          Arrays.toString(new Object[]{true, getQualifiedName(), null, msgSrcId, msgSrcVersion}));
       return true;
     }
     final int nodeVersion = node.getVersion();

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/utils/ScatterDecoder.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/utils/ScatterDecoder.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/utils/ScatterDecoder.java
index c751dfb..4c01608 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/utils/ScatterDecoder.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/group/impl/utils/ScatterDecoder.java
@@ -26,11 +26,14 @@ import java.io.DataInputStream;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Decode messages that was created by {@code ScatterEncoder}.
  */
 public final class ScatterDecoder implements Decoder<ScatterData> {
+  private static final Logger LOG = Logger.getLogger(ScatterDecoder.class.getName());
 
   @Inject
   ScatterDecoder() {
@@ -45,7 +48,9 @@ public final class ScatterDecoder implements Decoder<ScatterData> {
       for (int index = 0; index < elementCount; index++) {
         final int encodedElementLength = dstream.readInt();
         myData[index] =  new byte[encodedElementLength];
-        dstream.read(myData[index]);
+        if (dstream.read(myData[index]) == -1) {
+          LOG.log(Level.FINE, "No data read because end of stream was reached");
+        }
       }
 
       // and then read the data intended for my children
@@ -53,7 +58,9 @@ public final class ScatterDecoder implements Decoder<ScatterData> {
       while (dstream.available() > 0) {
         final String childId = dstream.readUTF();
         final byte[] childData = new byte[dstream.readInt()];
-        dstream.read(childData);
+        if (dstream.read(childData) == -1) {
+          LOG.log(Level.FINE, "No data read because end of stream was reached");
+        }
         childDataMap.put(childId, childData);
       }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessage.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessage.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessage.java
index 854e1c7..a81a213 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessage.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessage.java
@@ -107,7 +107,7 @@ final class NetworkConnectionServiceMessage<T> implements Message<T> {
     builder.append(destId);
     builder.append(" message=[| ");
     for (final T message : messages) {
-      builder.append(message + " |");
+      builder.append(message).append(" |");
     }
     builder.append("]");
     return builder.toString();

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessageCodec.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessageCodec.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessageCodec.java
index bdccff2..c85ebc7 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessageCodec.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/impl/NetworkConnectionServiceMessageCodec.java
@@ -28,12 +28,15 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * DefaultNetworkMessageCodec implementation.
  * This codec encodes/decodes NetworkConnectionServiceMessageImpl according to the type <T>.
  */
 final class NetworkConnectionServiceMessageCodec implements Codec<NetworkConnectionServiceMessage> {
+  private static final Logger LOG = Logger.getLogger(NetworkConnectionServiceMessageCodec.class.getName());
 
   private final IdentifierFactory factory;
   /**
@@ -126,7 +129,9 @@ final class NetworkConnectionServiceMessageCodec implements Codec<NetworkConnect
           for (int i = 0; i < size; i++) {
             final int byteSize = dais.readInt();
             final byte[] bytes = new byte[byteSize];
-            dais.read(bytes);
+            if (dais.read(bytes) == -1) {
+              LOG.log(Level.FINE, "No data read because end of stream was reached");
+            }
             list.add(codec.decode(bytes));
           }
         }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
index c7cdec9..e115873 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameClient.java
@@ -185,6 +185,7 @@ class NamingClientEventHandler implements EventHandler<TransportEvent> {
  * Naming response message handler.
  */
 class NamingResponseHandler implements EventHandler<NamingMessage> {
+  private static final Logger LOG = Logger.getLogger(NamingResponseHandler.class.getName());
 
   private final BlockingQueue<NamingLookupResponse> replyLookupQueue;
   private final BlockingQueue<NamingRegisterResponse> replyRegisterQueue;
@@ -198,9 +199,13 @@ class NamingResponseHandler implements EventHandler<NamingMessage> {
   @Override
   public void onNext(final NamingMessage value) {
     if (value instanceof NamingLookupResponse) {
-      replyLookupQueue.offer((NamingLookupResponse) value);
+      if (!replyLookupQueue.offer((NamingLookupResponse) value)) {
+        LOG.log(Level.FINEST, "Element {0} was not added to the queue", value);
+      }
     } else if (value instanceof NamingRegisterResponse) {
-      replyRegisterQueue.offer((NamingRegisterResponse) value);
+      if (!replyRegisterQueue.offer((NamingRegisterResponse) value)) {
+        LOG.log(Level.FINEST, "Element {0} was not added to the queue", value);
+      }
     } else {
       throw new NamingRuntimeException("Unknown naming response message");
     }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
index 6105ce1..f85bb88 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameLookupClient.java
@@ -336,6 +336,7 @@ class NamingLookupClientHandler implements EventHandler<TransportEvent> {
  * Naming lookup response handler.
  */
 class NamingLookupResponseHandler implements EventHandler<NamingLookupResponse> {
+  private static final Logger LOG = Logger.getLogger(NamingLookupResponseHandler.class.getName());
 
   private final BlockingQueue<NamingLookupResponse> replyQueue;
 
@@ -345,6 +346,8 @@ class NamingLookupResponseHandler implements EventHandler<NamingLookupResponse>
 
   @Override
   public void onNext(final NamingLookupResponse value) {
-    replyQueue.offer(value);
+    if (!replyQueue.offer(value)) {
+      LOG.log(Level.FINEST, "Element {0} was not added to the queue", value);
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
index 7dee0a3..a3de2b6 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/network/naming/NameRegistryClient.java
@@ -197,6 +197,7 @@ class NamingRegistryClientHandler implements EventHandler<TransportEvent> {
  * Naming register response handler.
  */
 class NamingRegistryResponseHandler implements EventHandler<NamingRegisterResponse> {
+  private static final Logger LOG = Logger.getLogger(NamingRegistryResponseHandler.class.getName());
 
   private final BlockingQueue<NamingRegisterResponse> replyQueue;
 
@@ -206,6 +207,8 @@ class NamingRegistryResponseHandler implements EventHandler<NamingRegisterRespon
 
   @Override
   public void onNext(final NamingRegisterResponse value) {
-    replyQueue.offer(value);
+    if (!replyQueue.offer(value)) {
+      LOG.log(Level.FINEST, "Element {0} was not added to the queue", value);
+    }
   }
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-io/src/main/java/org/apache/reef/io/watcher/FileEventStream.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-io/src/main/java/org/apache/reef/io/watcher/FileEventStream.java b/lang/java/reef-io/src/main/java/org/apache/reef/io/watcher/FileEventStream.java
index e50691a..a05f427 100644
--- a/lang/java/reef-io/src/main/java/org/apache/reef/io/watcher/FileEventStream.java
+++ b/lang/java/reef-io/src/main/java/org/apache/reef/io/watcher/FileEventStream.java
@@ -35,12 +35,15 @@ import java.nio.charset.Charset;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 /**
  * Write events to a file in the root directory of the driver.
  */
 @Unstable
 public final class FileEventStream implements EventStream {
+  private static final Logger LOG = Logger.getLogger(FileEventStream.class.getName());
 
   private final DateFormat dateFormat;
   private final PrintWriter printWriter;
@@ -63,11 +66,12 @@ public final class FileEventStream implements EventStream {
   private File createFileWithPath(final String path) throws Exception {
     final File file = new File(path);
     final File parent = file.getParentFile();
-    if (parent != null && !parent.exists()){
-      parent.mkdirs();
+    if (parent != null && !parent.exists() && !parent.mkdirs()) {
+      LOG.log(Level.WARNING, "Failed to create [{0}]", parent.getAbsolutePath());
+    }
+    if (!file.exists() && !file.createNewFile()) {
+      LOG.log(Level.WARNING, "Failed to create [{0}]", file.getAbsolutePath());
     }
-
-    file.createNewFile();
     return file;
   }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/AmContainerSpec.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/AmContainerSpec.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/AmContainerSpec.java
index 9c743dc..7a9bb7b 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/AmContainerSpec.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/AmContainerSpec.java
@@ -167,7 +167,7 @@ public final class AmContainerSpec {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing AmContainerSpec: " + e);
     }
 
     return AM_CONTAINER_SPEC + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationID.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationID.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationID.java
index a14c7ee..916f0d1 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationID.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationID.java
@@ -65,7 +65,7 @@ public final class ApplicationID {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing ApplicationID: " + e);
     }
 
     return APPLICATION_ID + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationResponse.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationResponse.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationResponse.java
index bde2aab..540d2ea 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationResponse.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationResponse.java
@@ -60,7 +60,7 @@ public final class ApplicationResponse {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing ApplicationResponse: " + e);
     }
 
     return APPLICATION_RESPONSE + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationState.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationState.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationState.java
index 7e9e1db..417695d 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationState.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationState.java
@@ -268,7 +268,7 @@ public final class ApplicationState {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing ApplicationState: " + e);
     }
 
     return APPLICATION_STATE + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationSubmission.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationSubmission.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationSubmission.java
index 0ea4a06..26d58a6 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationSubmission.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ApplicationSubmission.java
@@ -187,7 +187,7 @@ public final class ApplicationSubmission {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing ApplicationSubmission: " + e);
     }
 
     return APPLICATION_SUBMISSION + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Commands.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Commands.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Commands.java
index e250ba7..afb9fc1 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Commands.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Commands.java
@@ -58,7 +58,7 @@ public final class Commands {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing Commands: " + e);
     }
 
     return COMMANDS + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Credentials.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Credentials.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Credentials.java
index 3962670..01fb056 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Credentials.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Credentials.java
@@ -93,7 +93,7 @@ public class Credentials {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing Credentials: " + e);
     }
 
     return CREDENTIALS + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ListApplicationResponse.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ListApplicationResponse.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ListApplicationResponse.java
index 2e853f0..cb8c522 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ListApplicationResponse.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/ListApplicationResponse.java
@@ -65,7 +65,7 @@ public final class ListApplicationResponse {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing ListApplicationResponse: " + e);
     }
 
     return LIST_APPLICATION_RESPONSE + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResource.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResource.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResource.java
index 30ca19f..f4f5a3d 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResource.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResource.java
@@ -105,7 +105,7 @@ public final class LocalResource {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing LocalResource: " + e);
     }
 
     return LOCAL_RESOURCE + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResourcesEntry.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResourcesEntry.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResourcesEntry.java
index c980a9d..94ae5db 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResourcesEntry.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/LocalResourcesEntry.java
@@ -72,7 +72,7 @@ public final class LocalResourcesEntry {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing LocalResourcesEntry: " + e);
     }
 
     return LOCAL_RESOURCES_ENTRY + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Resource.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Resource.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Resource.java
index 92c7dc2..7999e4a 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Resource.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/Resource.java
@@ -64,7 +64,7 @@ public final class Resource {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing Resource: " + e);
     }
 
     return RESOURCE + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/StringEntry.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/StringEntry.java b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/StringEntry.java
index 80a5d85..f7c6502 100644
--- a/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/StringEntry.java
+++ b/lang/java/reef-runtime-hdinsight/src/main/java/org/apache/reef/runtime/hdinsight/client/yarnrest/StringEntry.java
@@ -68,7 +68,7 @@ public final class StringEntry {
       OBJECT_MAPPER.writeValue(writer, this);
       objectString = writer.toString();
     } catch (final IOException e) {
-      return null;
+      throw new RuntimeException("Exception while serializing Resource: " + e);
     }
 
     return STRING_ENTRY + objectString;

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/accumulate/CombinerStage.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/accumulate/CombinerStage.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/accumulate/CombinerStage.java
index 95311b7..e32711f 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/accumulate/CombinerStage.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/accumulate/CombinerStage.java
@@ -119,6 +119,24 @@ public class CombinerStage<K extends Comparable<K>, V> implements Stage {
     }
 
     @Override
+    public boolean equals(final Object o) {
+      if (this == o) {
+        return true;
+      }
+      if (o == null || getClass() != o.getClass()) {
+        return false;
+      }
+
+      Pair<K, V> pair = (Pair<K, V>) o;
+      return k.compareTo(pair.getKey()) == 0;
+    }
+
+    @Override
+    public int hashCode() {
+      return k.hashCode();
+    }
+
+    @Override
     public int compareTo(final Map.Entry<K, V> arg0) {
       return k.compareTo(arg0.getKey());
     }

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/join/TupleEvent.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/join/TupleEvent.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/join/TupleEvent.java
index 78acea0..e7af984 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/join/TupleEvent.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/examples/join/TupleEvent.java
@@ -31,6 +31,31 @@ public class TupleEvent implements Comparable<TupleEvent> {
   }
 
   @Override
+  public boolean equals(final Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+
+    TupleEvent that = (TupleEvent) o;
+
+    if (key != that.key) {
+      return false;
+    }
+    return val != null ? val.equals(that.val) : that.val == null;
+
+  }
+
+  @Override
+  public int hashCode() {
+    int result = key;
+    result = 31 * result + (val != null ? val.hashCode() : 0);
+    return result;
+  }
+
+  @Override
   public int compareTo(final TupleEvent o) {
     final int keycmp = Integer.compare(key, o.key);
     if (keycmp != 0) {

http://git-wip-us.apache.org/repos/asf/reef/blob/0e88ee42/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7f0bf9e..0b70d55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -337,7 +337,7 @@ under the License.
                     <version>${findbugs.version}</version>
                     <configuration>
                         <effort>Max</effort>
-                        <threshold>High</threshold>
+                        <threshold>Default</threshold>
                         <failOnError>true</failOnError>
                         <findbugsXmlOutputDirectory>${project.build.directory}/findbugs</findbugsXmlOutputDirectory>
                         <excludeFilterFile>${rootPath}/lang/java/reef-common/src/main/resources/findbugs-exclude.xml</excludeFilterFile>