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

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

In grep and and seemingly with ant's fileset exclusion has higher precedence 
than inclusion.

{quote}
     --include
             If specified, only files matching the given filename pattern are 
searched.  Note that --exclude patterns take priority over
             --include patterns.  Patterns are matched to the full path 
specified, not only to the filename component.
{quote}

I suggest we follow this for consistency. Mathematically it matches best the 
intuition.
SET = INCL_SET \  EXCL_SET

> 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
>            Reporter: Yitong Zhou
>            Assignee: Yitong Zhou
>
> 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