DEFAULT_ATTRIBUTE_FACTORY faills to load implementation class when iterface 
comes from different classloader
------------------------------------------------------------------------------------------------------------

                 Key: LUCENE-2182
                 URL: https://issues.apache.org/jira/browse/LUCENE-2182
             Project: Lucene - Java
          Issue Type: Bug
          Components: Other
    Affects Versions: 3.0, 2.9.1
            Reporter: Uwe Schindler
            Assignee: Uwe Schindler


This is a followup for 
[http://www.lucidimagination.com/search/document/1724fcb3712bafba/using_the_new_tokenizer_api_from_a_jar_file]:

The DEFAULT_ATTRIBUTE_FACTORY should load the implementation class for a given 
attribute interface from the same classloader like the attribute interface. The 
current code loads it from the classloader of the lucene-core.jar file. In solr 
this fails when the interface is in a JAR file coming from the plugins folder. 

The interface is loaded correctly, because the addAttribute(FooAttribute.class) 
loads the FooAttribute.class from the plugin code and this with success. But as 
addAttribute tries to load the class from its local lucene-core.jar classloader 
it will not find the attribute.

The fix is to tell Class.forName to use the classloader of the corresponding 
interface, which is the correct way to handle it, as the impl and the attribute 
should always be in the same classloader and file.

I hope I can somehow add a test for that.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to