hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vinod Kumar Vavilapalli (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-12406) AbstractMapWritable.readFields throws ClassNotFoundException with custom writables
Date Mon, 28 Sep 2015 18:40:04 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-12406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Vinod Kumar Vavilapalli updated HADOOP-12406:
---------------------------------------------
    Target Version/s: 2.8.0, 2.7.2  (was: 2.7.1)
       Fix Version/s:     (was: 2.7.1)

[~ndouba], please use the "Target Version" field to express your intention. Fix-version is
exclusively used by committers when a patch gets committed.

IAC, 2.7.1 is done, targeting this for 2.7.2/2.8.0.

> 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
>            Priority: Blocker
>              Labels: bug, hadoop, io, newbie, patch-available
>         Attachments: 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)

Mime
View raw message