|Problem with Help indexing when Compass is involved [message #614394]
||Fri, 30 May 2008 14:50
| Eric Rizzo
Registered: July 2009
A while back I posted a problem we are seeing when help indexing kicks |
in (at the time, I thought it had to do with opening the help sidebar,
but it turns out that was just the manifestation of an indexing problem,
because the sidebar includes the Dynamic Help). Here's the original
As I've discovered, the problem is due to Lucene's reliance on System
properties to dictate implementation classes. See these Lucene bugs:
The problem boils down to this:
Because Lucene uses a system property (global to the JVM) to allow
customization of the SegmentReader class, any plugin that specifies a
value for that property runs the risk of breaking Eclipse help indexing.
In our case (probably the only one that is very likely), our plugin
depends on Compass; Compass overrides the SegmentReader with its own
implementation, specified by setting the system, property. However,
because Compass is not visible to the help plugin's classloader, Lucene
blows up with a ClassNotFoundException when it tries to initialize itself.
If Eclipse help invokes Lucene first, this problem is avoided (because
Lucene's dependence on that system property is in a static initializer,
only run once per classloader); but if our plugin triggers Compass to
load first, Lucene blows up.
So, I'm looking for a work-around. I'm trying, in my plugin Activator's
start() method, to somehow force Lucene to initialize. But no luck so far.
Any ideas on how to work around this problem?
Also, it seems that this would be a somewhat common problem - I mean,
any plugin that uses Compass (version < 2.0) is going to run into this.
I'm surprised it has not been reported before.
Powered by FUDForum
. Page generated in 0.01984 seconds