MAPREDUCE-1686. Fixes StreamUtil.goodClassOrNull to find classes without package names. Contributed by Paul Burkhardt

git-svn-id: https://svn.apache.org/repos/asf/hadoop/mapreduce/trunk@980704 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 45ee799..d8c8cf3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -205,6 +205,9 @@
     MAPREDUCE-1701. Fixes a problem to do with exception handling in 
     delegation-token renewals. (Boris Shkolnik via ddas)
 
+    MAPREDUCE-1686. Fixes StreamUtil.goodClassOrNull to find classes without
+    package names. (Paul Burkhardt via amareshwari)
+
 Release 0.21.0 - Unreleased
 
   INCOMPATIBLE CHANGES
diff --git a/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java b/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
index 3930db7..88ef99b 100644
--- a/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
+++ b/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamUtil.java
@@ -55,14 +55,20 @@
    * (repeat for -reducer, -combiner) </pre>
    */
   public static Class goodClassOrNull(Configuration conf, String className, String defaultPackage) {
-    if (className.indexOf('.') == -1 && defaultPackage != null) {
-      className = defaultPackage + "." + className;
-    }
     Class clazz = null;
     try {
       clazz = conf.getClassByName(className);
     } catch (ClassNotFoundException cnf) {
     }
+    if (clazz == null) {
+      if (className.indexOf('.') == -1 && defaultPackage != null) {
+        className = defaultPackage + "." + className;
+        try {
+          clazz = conf.getClassByName(className);
+        } catch (ClassNotFoundException cnf) {
+        }
+      }
+    }
     return clazz;
   }