[ https://issues.apache.org/jira/browse/LUCENE-812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12475168 ]
Michael McCandless commented on LUCENE-812: ------------------------------------------- > I just entered this issue as I thought that the behaviour of the > code ... is a bit unexpected. In the end, if the system property is > set to whatever value lucene is unable to create an FSDirectory and > FSDirectory based IndexSearchers. Agreed, this really is a bug (thanks for finding it & opening it Matthias!). > ... but i don't think we should aggresivly support using system > props to set things like this. as long as we have setters for > things, client code can use system properties all it wants to set > these things. +1 I think system properties are dangerously global and we should try not to add any more to Lucene? I would prefer to just remove this one (and do a 2.1.1 soon?) or deprecate this property for the next release. > Unable to set LockFactory implementation via > ${org.apache.lucene.store.FSDirectoryLockFactoryClass} > --------------------------------------------------------------------------------------------------- > > Key: LUCENE-812 > URL: https://issues.apache.org/jira/browse/LUCENE-812 > Project: Lucene - Java > Issue Type: Bug > Components: Store > Affects Versions: 2.1 > Reporter: Matthias Kerkhoff > Assigned To: Michael McCandless > > While trying to move from Lucene 2.0 to Lucene 2.1 I noticed a problem with > the LockFactory instantiation code. > During previous tests we successfully specified the LockFactory > implementation by setting the property > ${org.apache.lucene.store.FSDirectoryLockFactoryClass} to > "org.apache.lucene.store.NativeFSLockFactory". > This does no longer work due to a bug in the FSDirectory class. The problem > is caused from the fact that this > class tries to invoke the default constructor of the specified LockFactory > class. However neither NativeFSLockFactory > nor SimpleFSLockFactory do have a default constructor. > FSDirectory, Line 285: > try { > lockFactory = (LockFactory) c.newInstance(); > } catch (IllegalAccessException e) { > throw new IOException("IllegalAccessException when instantiating > LockClass " + lockClassName); > } catch (InstantiationException e) { > throw new IOException("InstantiationException when instantiating > LockClass " + lockClassName); > } catch (ClassCastException e) { > throw new IOException("unable to cast LockClass " + lockClassName > + " instance to a LockFactory"); > } > A possible workaround is to not set the property at all and call > FSDirectory.setLockFactory(...) instead. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]