You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2013/04/03 01:49:16 UTC
[jira] [Resolved] (SOLR-4652) Resource loader has broken behavior
for solr.xml plugins (basically ShardHandlerFactory)
[ https://issues.apache.org/jira/browse/SOLR-4652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Uwe Schindler resolved SOLR-4652.
---------------------------------
Resolution: Fixed
Committed to trunk and 4.x Will be released with Lucene/Solr 4.3.
Thanks Ryan, I hope we can fix the remaining issues with chaining of classloaders (disallowing null/context class loader as default classloader, using webapp classloader instead of context one)!
> Resource loader has broken behavior for solr.xml plugins (basically ShardHandlerFactory)
> ----------------------------------------------------------------------------------------
>
> Key: SOLR-4652
> URL: https://issues.apache.org/jira/browse/SOLR-4652
> Project: Solr
> Issue Type: Bug
> Affects Versions: 4.2
> Reporter: Ryan Ernst
> Assignee: Uwe Schindler
> Fix For: 4.3, 5.0
>
> Attachments: SOLR-4652.patch, SOLR-4652.patch, SOLR-4652.patch
>
>
> I have the following scenario:
> MyShardHandlerFactory is plugged in via solr.xml. The jar containing MyShardHandlerFactory is in the shared lib dir. There are a couple issues:
> 1. From within a per core handler (that is loaded within the core's lib dir), you grab the ShardHandlerFactory from CoreContainer, casting to MyShardHandlerFactory will results in a ClassCastException with a message like "cannot cast instance of MyShardHandlerFactory to MyShardHandlerFactory".
> 2. Adding a custom dir for shared lib (for example "mylib") does not work. The ShardHandlerFactory is initialized before sharedLib is loaded.
> I've been pouring through the code on this and I don't see an easy fix. I'll keep looking at it, but I wanted to get this up so hopefully others have some thoughts on how best to fix. IMO, it seems like there needs to be a clear chain of resource loaders (one for loading solr.xml, a child for loading the lib dir, used for solr.xml plugins, a grandchild for per core config, and a great grandchild for per core lib dir based plugins). Right now there are some siblings, because any place a SolrResourceLoader is created with a null parent classloader, it gets the jetty thread's classloader as the parent.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org