You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2017/01/07 12:24:32 UTC
lucene-solr:master: SOLR-9928 Unwrap Directory consistently whenever
it's passed as an argument.
Repository: lucene-solr
Updated Branches:
refs/heads/master 1a95c5acd -> e5f39f62f
SOLR-9928 Unwrap Directory consistently whenever it's passed as an argument.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/e5f39f62
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/e5f39f62
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/e5f39f62
Branch: refs/heads/master
Commit: e5f39f62f76677a5f500af4f323c0c31afb26228
Parents: 1a95c5a
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Sat Jan 7 13:22:37 2017 +0100
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Sat Jan 7 13:24:22 2017 +0100
----------------------------------------------------------------------
.../solr/core/MetricsDirectoryFactory.java | 60 ++++++++------------
1 file changed, 25 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e5f39f62/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
index 8706c61..f441579 100644
--- a/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/MetricsDirectoryFactory.java
@@ -74,21 +74,28 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
}
}
- @Override
- public void doneWithDirectory(Directory dir) throws IOException {
- // unwrap
+ /**
+ * Unwrap just one level if the argument is a {@link MetricsDirectory}
+ * @param dir directory
+ * @return delegate if the instance was a {@link MetricsDirectory}, otherwise unchanged.
+ */
+ private static Directory unwrap(Directory dir) {
if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
+ return ((MetricsDirectory)dir).getDelegate();
+ } else {
+ return dir;
}
+ }
+
+ @Override
+ public void doneWithDirectory(Directory dir) throws IOException {
+ dir = unwrap(dir);
in.doneWithDirectory(dir);
}
@Override
public void addCloseListener(Directory dir, CachingDirectoryFactory.CloseListener closeListener) {
- // unwrap
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
- }
+ dir = unwrap(dir);
in.addCloseListener(dir, closeListener);
}
@@ -115,19 +122,13 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
@Override
public void remove(Directory dir) throws IOException {
- // unwrap
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
- }
+ dir = unwrap(dir);
in.remove(dir);
}
@Override
public void remove(Directory dir, boolean afterCoreClose) throws IOException {
- // unwrap
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
- }
+ dir = unwrap(dir);
in.remove(dir, afterCoreClose);
}
@@ -152,8 +153,9 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
}
@Override
- public long size(Directory directory) throws IOException {
- return in.size(directory);
+ public long size(Directory dir) throws IOException {
+ dir = unwrap(dir);
+ return in.size(dir);
}
@Override
@@ -183,6 +185,8 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
@Override
public void move(Directory fromDir, Directory toDir, String fileName, IOContext ioContext) throws IOException {
+ fromDir = unwrap(fromDir);
+ toDir = unwrap(toDir);
in.move(fromDir, toDir, fileName, ioContext);
}
@@ -198,10 +202,7 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
@Override
public void renameWithOverwrite(Directory dir, String fileName, String toName) throws IOException {
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory) dir).getDelegate();
- }
-
+ dir = unwrap(dir);
in.renameWithOverwrite(dir, fileName, toName);
}
@@ -221,16 +222,8 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
}
@Override
- protected Directory getBaseDir(Directory dir) {
- return in.getBaseDir(dir);
- }
-
- @Override
public void incRef(Directory dir) {
- // unwrap
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
- }
+ dir = unwrap(dir);
in.incRef(dir);
}
@@ -248,10 +241,7 @@ public class MetricsDirectoryFactory extends DirectoryFactory implements SolrCor
@Override
public void release(Directory dir) throws IOException {
- // unwrap
- if (dir instanceof MetricsDirectory) {
- dir = ((MetricsDirectory)dir).getDelegate();
- }
+ dir = unwrap(dir);
in.release(dir);
}