[ https://issues.apache.org/jira/browse/LUCENE-812?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael McCandless updated LUCENE-812: -------------------------------------- Attachment: LUCENE-812.patch Attached proposed patch. OK I made the no-argument constructors package-private since you would not normally do this. I also added package-private "setLockDir()". FSDirectory uses setLockDir to set itself when it instantiates a Simple/NativeFSLockFactory using that System property. I also extended TestLockFactory test case to test that all 4 builtin LockFactory implementations can be set. > 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 > Attachments: LUCENE-812.patch > > > 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]