PluginManifestParser cannot load plugins from classpath that is dynamically set 
using a contextClassLoader.
-----------------------------------------------------------------------------------------------------------

                 Key: NUTCH-1148
                 URL: https://issues.apache.org/jira/browse/NUTCH-1148
             Project: Nutch
          Issue Type: Bug
            Reporter: Ferdy


This affects running nutchgora using Hadoop it's RunJar mechanism (hadoop jar 
...). The mr tasks are perfectly able to load the plugins (please note 
NUTCH-937). But, when the plugins are loaded from the *job submitter* process 
itself, loading plugins might fail due to classloading issues. This is caused 
by the fact that PluginManifestParser does not use the contextClassLoader that 
is set by RunJar. This classloader contains the plugins folder. At least the 
FetcherJob is affected by this, because the job submitter uses getFields of 
Protocol implementations, therefore loading the plugins.

The current 1.x is not affected because it does not load plugins at any point 
during the job submission. This might of course change so I propose to 'fix' 
the issue in the 1.x branch as well.

The solution is fairly simple, PluginManifestParser should use the 
contextClassLoader of the current thread instead of using the system 
classloader. I will attach patch right away. It currently works but it still 
needs some further testing.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to