Rupert Westenthaler created STANBOL-775:
-------------------------------------------

             Summary: SolrServerPublishingComponent needs to intercept the 
ContextClassLoader when instantiating the SolrDispatchFilter
                 Key: STANBOL-775
                 URL: https://issues.apache.org/jira/browse/STANBOL-775
             Project: Stanbol
          Issue Type: Sub-task
            Reporter: Rupert Westenthaler
            Priority: Minor


The "org.apache.solr.servlet.SolrDispatchFilter" initialises within the 
constructor the Solr Adminhandler via the context Classloader. Because of that 
any Apache Solr version used by the host system is leaking into Apache Stanbol 
running within the embedded OSGI environment.

This causes Exceptions like 

org.apache.solr.common.SolrException: java.lang.ClassCastException: 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl cannot be cast to 
javax.xml.parsers.DocumentBuilderFactory
        at 
org.apache.solr.servlet.SolrDispatchFilter.<init>(SolrDispatchFilter.java:79) 
~[solr-core-3.6.1.jar:3.6.1 1362471 - thetaphi - 2012-07-17 12:46:54]
        at 
org.apache.stanbol.commons.solr.web.dispatch.DelegatingSolrDispatchFilter.<init>(DelegatingSolrDispatchFilter.java:80)
 ~[na:na]
        at 
org.apache.stanbol.commons.solr.web.impl.SolrServerPublishingComponent$SolrFilter.<init>(SolrServerPublishingComponent.java:346)
 ~[na:na]
        at 
org.apache.stanbol.commons.solr.web.impl.SolrServerPublishingComponent.updateFilter(SolrServerPublishingComponent.java:303)
 ~[na:na]
        at 
org.apache.stanbol.commons.solr.web.impl.SolrServerPublishingComponent$1.addOrUpdate(SolrServerPublishingComponent.java:192)
 ~[na:na]
        at 
org.apache.stanbol.commons.solr.web.impl.SolrServerPublishingComponent$1.addingService(SolrServerPublishingComponent.java:219)
 ~[na:na]
        at 
org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)
 ~[stanbol-embedded-0.11.0-LMF-SNAPSHOT.jar:0.11.0-LMF-SNAPSHOT]

To solve this the best options is that the SolrServerPublishingComponent 
replaces the context Classloader with the Bundle Classloader when instantiating 
the SolrFilter (line 304)

--
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

Reply via email to