[ 
https://issues.apache.org/jira/browse/HADOOP-11211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14199571#comment-14199571
 ] 

Gera Shegalov commented on HADOOP-11211:
----------------------------------------

+1 (non-binding) for the code change. 

I would add javadoc to {{o.a.h.u.ApplicationClassLoader#isSystemClass}} with 
the behavior description: a class is a system class iff it matches one of the 
positive patterns and none of the negative ones. Similarly in 
mapred-default.xml for {{mapreduce.job.classloader.system.classes}} we should 
clarify that exclusions take precedence 

> mapreduce.job.classloader.system.classes property behaves differently when 
> the exclusion and inclusion order is different
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-11211
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11211
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: hudson
>            Reporter: Yitong Zhou
>            Assignee: Yitong Zhou
>         Attachments: HADOOP-11211.patch
>
>
> If we want to include package foo.bar.* but exclude all sub packages named 
> foo.bar.tar.* in system classes, configuring 
> "mapreduce.job.classloader.system.classes=foo.bar.,-foo.bar.tar." won't work. 
> foo.bar.tar will still be pulled in. But if we change the order:
> "mapreduce.job.classloader.system.classes=-foo.bar.tar.,foo.bar.", then it 
> will work.
> This bug is due to the implementation of ApplicationClassLoaser#isSystemClass 
> in hadoop-common, where we simply return the matching result immediately when 
> the class name hits the first match (either positive or negative).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to