[
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)