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]