lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Updated] (SOLR-4652) Resource loader has broken behavior for solr.xml plugins (basically ShardHandlerFactory)
Date Tue, 02 Apr 2013 23:41:16 GMT


Uwe Schindler updated SOLR-4652:

    Attachment: SOLR-4652.patch

Hi Ryan,
I reviewed your patch, which unfortunately did no longer apply to trunk, because there were
changes in CoreContainer. As your patch was no SVN patch, my client was not able to download
the correct SVN revision number for your patch, so I had to try out. I was then able to upgrade
to latest Solr trunk.

It would be better to supply Subversion patches in the future, because they contain the metadata
required to correctly apply the patches. At least mention the revision number in SVN it was
created against.

I reverted the changes in import statements and in your test I used assertSame() instead of
assertEquals(), because the classloader must be the same (==) not equal ones.

I will commit this soon, once all tests passed.
> Resource loader has broken behavior for solr.xml plugins (basically ShardHandlerFactory)
> ----------------------------------------------------------------------------------------
>                 Key: SOLR-4652
>                 URL:
>             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:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message