[
https://issues.apache.org/jira/browse/HADOOP-11211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14179735#comment-14179735
]
Yitong Zhou commented on HADOOP-11211:
--------------------------------------
Hi [~sjlee0]: if you do not mind, I'd be happy to continue working on this
issue.
To follow up the previous discussion: the example you provided
"foo.bar.tar.,-foo.bar." can actually be simplified into "foo.bar.tar." to
achieve the equivalent effect because for anything not listed in the property,
it is assumed not to be a system class. The more often reason for introducing
an exclusion in this property could be to do a minor adjustment over a larger
inclusion. Combining [~jira.shegalov]'s comments, giving exclusion a higher
priority over inclusion seems to be reasonable here.
Any further thoughts?
> 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)