The StreamUtil::goodClassOrNull method assumes user-provided classes have package names and if not, they are part of the Hadoop Streaming package. For example, using custom InputFormat or OutputFormat classes without package names will fail with a ClassNotFound exception which is not indicative given the classes are provided in the libjars option. Admittedly, most Java packages should have a package name so this should rarely come up.
Possible resolution options:
1) modify the error message to include the actual classname that was attempted in the goodClassOrNull method
2) call the Configuration::getClassByName method first and if class not found check for default package name and try the call again