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