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