You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Ken Geis (JIRA)" <ji...@apache.org> on 2006/09/08 02:32:23 UTC

[jira] Created: (LUCENE-670) improper isolation (overuse of system properties) allows Lucene apps to clobber each other

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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


[jira] Resolved: (LUCENE-670) improper isolation (overuse of system properties) allows Lucene apps to clobber each other

Posted by "Hoss Man (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/LUCENE-670?page=all ]

Hoss Man resolved LUCENE-670.
-----------------------------

    Resolution: Duplicate

> 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


[jira] Closed: (LUCENE-670) improper isolation (overuse of system properties) allows Lucene apps to clobber each other

Posted by "Otis Gospodnetic (JIRA)" <ji...@apache.org>.
     [ http://issues.apache.org/jira/browse/LUCENE-670?page=all ]

Otis Gospodnetic closed LUCENE-670.
-----------------------------------


> 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: 1.9, 2.0.0
>         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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


[jira] Commented: (LUCENE-670) improper isolation (overuse of system properties) allows Lucene apps to clobber each other

Posted by "Ken Geis (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/LUCENE-670?page=comments#action_12433447 ] 
            
Ken Geis commented on LUCENE-670:
---------------------------------

I guess I didn't search well enough for a previously submitted bug.

LUCENE-636 addresses my concerns and the patch is coded very close to how I had it in my head.

Please mark this as a duplicate of LUCENE-636.  (It doesn't appear that I have permission to do so.)

> 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org