You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2007/02/26 20:49:06 UTC
[jira] Updated: (LUCENE-812) Unable to set LockFactory
implementation via ${org.apache.lucene.store.FSDirectoryLockFactoryClass}
[ 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org