[ https://issues.apache.org/jira/browse/HADOOP-12406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vinod Kumar Vavilapalli updated HADOOP-12406: --------------------------------------------- Resolution: Fixed Fix Version/s: 2.7.3 Status: Resolved (was: Patch Available) Committed this to trunk, branch-2 and branch-2.7. Thanks [~ndouba]! Forgot to mention that I've tested that the nutch code fails without the patch and passes with. > AbstractMapWritable.readFields throws ClassNotFoundException with custom > writables > ---------------------------------------------------------------------------------- > > Key: HADOOP-12406 > URL: https://issues.apache.org/jira/browse/HADOOP-12406 > Project: Hadoop Common > Issue Type: Bug > Components: io > Affects Versions: 2.7.1 > Environment: Ubuntu Linux 14.04 LTS amd64 > Reporter: Nadeem Douba > Assignee: Nadeem Douba > Priority: Blocker > Fix For: 2.7.3 > > Attachments: HADOOP-12406.1.patch, HADOOP-12406.patch > > > Note: I am not an expert at JAVA, Class loaders, or Hadoop. I am just a > hacker. My solution might be entirely wrong. > AbstractMapWritable.readFields throws a ClassNotFoundException when reading > custom writables. Debugging the job using remote debugging in IntelliJ > revealed that the class loader being used in Class.forName() is different > than that used by the Thread's current context > (Thread.currentThread().getContextClassLoader()). The class path for the > system class loader does not include the libraries of the job jar. However, > the class path for the context class loader does. The proposed patch changes > the class loading mechanism in readFields to use the Thread's context class > loader instead of the system's default class loader. -- This message was sent by Atlassian JIRA (v6.3.4#6332)