improper isolation (overuse of system properties) allows Lucene apps to clobber 
each other
------------------------------------------------------------------------------------------

                 Key: LUCENE-670
                 URL: http://issues.apache.org/jira/browse/LUCENE-670
             Project: Lucene - Java
          Issue Type: Bug
          Components: Index, Store
    Affects Versions: 2.0.0, 1.9
         Environment: Tomcat
            Reporter: Ken Geis
            Priority: Critical


As nicely stated by the Javadoc for 
org.apache.commons.discovery.tools.ManagedProperties, "System properties are 
global in nature, so using them easily violates sound architectural and design 
principles for maintaining separation between components and runtime 
environments."  Lucene's use of system properties makes it so that one web 
application that uses Lucene can break another web application that uses Lucene.

Both org.apache.lucene.index.SegmentReader and 
org.apache.lucene.store.FSDirectory use system properties to locate an 
implementation class.  Because of this, two applications can step on each 
others' toes.

So, I have two webapps running in Tomcat.  One uses the Compass Framework which 
sets the SegmentReader implementation class to 
org.apache.lucene.index.CompassSegmentReader.  My other webapp tries to 
initialize SegmentReader in a different classloader, and it fails with an 
ExceptionInInitializerError because it can't load that class.  If I get lucky, 
the non-Compass webapp loads first and things run smoothly.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to