[ 
https://issues.apache.org/jira/browse/SOLR-6519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Uwe Schindler updated SOLR-6519:
--------------------------------
    Description: 
Because of NIO2 changes and the corresponding workaround, it is impossible now 
to create a Directory and "hope" that the lock factory directory is not 
created. Especially if you want some non-standard lock factory, this blows up.

The problem is: The lock dir is now created in ctor. As workaround I made all 
factories set NoLockFactory initially through ctor (see SOLR-6518), but this is 
just a workaround for incorrect API design.

In fact the main problem is just stupid: Why does protected 
CachingDirectoryFactory.create() not take the lock factory? I think its because 
of backwards compatibility, but with Solr 5.0 we can change this.

In future we want to make the lock factory non-mutable in Directory, so this is 
an important change. In addition, injectLockFactory looks horrible, this code 
is a häckidy-hick-hack!

  was:
Because of NIO2 changes and the corresponding workaround, it is impossible now 
to create a Directory and "hope" that the lock factory directory is not 
created. Especially if you want some non-standard lock factory, this blows up.

The problem is: The lock dir is now created in ctor.

In fact the main problem is just stupid: Why does protected 
CachingDirectoryFactory.create() not take the lock factory? I think its because 
of backwards compatibility, but with Solr 5.0 we can change this.

In future we want to make the lock factory non-mutable in Directory, so this is 
an important change. In addition, injectLockFactory looks horrible, this code 
is a häckidy-hick-hack!


> In trunk change Solr's DirectoryFactory.create method to take LockFactory
> -------------------------------------------------------------------------
>
>                 Key: SOLR-6519
>                 URL: https://issues.apache.org/jira/browse/SOLR-6519
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Uwe Schindler
>             Fix For: 5.0
>
>
> Because of NIO2 changes and the corresponding workaround, it is impossible 
> now to create a Directory and "hope" that the lock factory directory is not 
> created. Especially if you want some non-standard lock factory, this blows up.
> The problem is: The lock dir is now created in ctor. As workaround I made all 
> factories set NoLockFactory initially through ctor (see SOLR-6518), but this 
> is just a workaround for incorrect API design.
> In fact the main problem is just stupid: Why does protected 
> CachingDirectoryFactory.create() not take the lock factory? I think its 
> because of backwards compatibility, but with Solr 5.0 we can change this.
> In future we want to make the lock factory non-mutable in Directory, so this 
> is an important change. In addition, injectLockFactory looks horrible, this 
> code is a häckidy-hick-hack!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to