You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2015/09/30 17:19:57 UTC

accumulo git commit: ACCUMULO-4013 Fix build problems in master branch

Repository: accumulo
Updated Branches:
  refs/heads/master 82e9f0c56 -> 47cf834cb


ACCUMULO-4013 Fix build problems in master branch

Ensure RFile resources are closed properly, without warnings, for ACCUMULO-3913
using AutoCloseable, avoiding reassigning unclosed references, and using a
utility method to create an RFile.Reader which is returned.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/47cf834c
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/47cf834c
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/47cf834c

Branch: refs/heads/master
Commit: 47cf834cbaceb6975a0b7e2abbce87124bb91c92
Parents: 82e9f0c
Author: Christopher Tubbs <ct...@apache.org>
Authored: Wed Sep 30 11:19:24 2015 -0400
Committer: Christopher Tubbs <ct...@apache.org>
Committed: Wed Sep 30 11:19:24 2015 -0400

----------------------------------------------------------------------
 .../accumulo/core/file/FileSKVIterator.java     |  1 +
 .../accumulo/core/file/FileSKVWriter.java       |  3 +-
 .../accumulo/core/file/rfile/PrintInfo.java     |  4 +-
 .../core/file/rfile/RFileOperations.java        | 17 ++++---
 .../accumulo/core/file/rfile/SplitLarge.java    | 47 ++++++++++----------
 5 files changed, 37 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/47cf834c/core/src/main/java/org/apache/accumulo/core/file/FileSKVIterator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/file/FileSKVIterator.java b/core/src/main/java/org/apache/accumulo/core/file/FileSKVIterator.java
index 3713453..364a44d 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/FileSKVIterator.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/FileSKVIterator.java
@@ -34,5 +34,6 @@ public interface FileSKVIterator extends InterruptibleIterator, AutoCloseable {
 
   void closeDeepCopies() throws IOException;
 
+  @Override
   void close() throws IOException;
 }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/47cf834c/core/src/main/java/org/apache/accumulo/core/file/FileSKVWriter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/file/FileSKVWriter.java b/core/src/main/java/org/apache/accumulo/core/file/FileSKVWriter.java
index 98a366f..eefdc6d 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/FileSKVWriter.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/FileSKVWriter.java
@@ -24,7 +24,7 @@ import org.apache.accumulo.core.data.ByteSequence;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Value;
 
-public interface FileSKVWriter {
+public interface FileSKVWriter extends AutoCloseable {
   boolean supportsLocalityGroups();
 
   void startNewLocalityGroup(String name, Set<ByteSequence> columnFamilies) throws IOException;
@@ -35,6 +35,7 @@ public interface FileSKVWriter {
 
   DataOutputStream createMetaStore(String name) throws IOException;
 
+  @Override
   void close() throws IOException;
 
   long getLength() throws IOException;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/47cf834c/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java
index 4631a4d..cfe571c 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/PrintInfo.java
@@ -122,7 +122,7 @@ public class PrintInfo implements KeywordExecutable {
       if (opts.histogram || opts.dump || opts.vis || opts.hash) {
         localityGroupCF = iter.getLocalityGroupCF();
 
-        FileSKVIterator dataIter = iter;
+        FileSKVIterator dataIter;
         if (opts.useSample) {
           dataIter = iter.getSample();
 
@@ -130,6 +130,8 @@ public class PrintInfo implements KeywordExecutable {
             System.out.println("ERROR : This rfile has no sample data");
             return;
           }
+        } else {
+          dataIter = iter;
         }
 
         for (Entry<String,ArrayList<ByteSequence>> cf : localityGroupCF.entrySet()) {

http://git-wip-us.apache.org/repos/asf/accumulo/blob/47cf834c/core/src/main/java/org/apache/accumulo/core/file/rfile/RFileOperations.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/RFileOperations.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/RFileOperations.java
index 17e8e96..a41785a 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/RFileOperations.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/RFileOperations.java
@@ -51,21 +51,20 @@ public class RFileOperations extends FileOperations {
 
   @Override
   public FileSKVIterator openIndex(String file, FileSystem fs, Configuration conf, AccumuloConfiguration acuconf) throws IOException {
-
     return openIndex(file, fs, conf, acuconf, null, null);
   }
 
-  @Override
-  public FileSKVIterator openIndex(String file, FileSystem fs, Configuration conf, AccumuloConfiguration acuconf, BlockCache dataCache, BlockCache indexCache)
-      throws IOException {
+  private static RFile.Reader getReader(String file, FileSystem fs, Configuration conf, AccumuloConfiguration acuconf, BlockCache dataCache,
+      BlockCache indexCache) throws IOException {
     Path path = new Path(file);
-    // long len = fs.getFileStatus(path).getLen();
-    // FSDataInputStream in = fs.open(path);
-    // Reader reader = new RFile.Reader(in, len , conf);
     CachableBlockFile.Reader _cbr = new CachableBlockFile.Reader(fs, path, conf, dataCache, indexCache, acuconf);
-    final Reader reader = new RFile.Reader(_cbr);
+    return new RFile.Reader(_cbr);
+  }
 
-    return reader.getIndex();
+  @Override
+  public FileSKVIterator openIndex(String file, FileSystem fs, Configuration conf, AccumuloConfiguration acuconf, BlockCache dataCache, BlockCache indexCache)
+      throws IOException {
+    return getReader(file, fs, conf, acuconf, indexCache, indexCache).getIndex();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/47cf834c/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
index 92a9f72..4e5b232 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/rfile/SplitLarge.java
@@ -60,35 +60,34 @@ public class SplitLarge {
       AccumuloConfiguration aconf = DefaultConfiguration.getDefaultConfiguration();
       Path path = new Path(file);
       CachableBlockFile.Reader rdr = new CachableBlockFile.Reader(fs, path, conf, null, null, aconf);
-      Reader iter = new RFile.Reader(rdr);
+      try (Reader iter = new RFile.Reader(rdr)) {
 
-      if (!file.endsWith(".rf")) {
-        throw new IllegalArgumentException("File must end with .rf");
-      }
-      String smallName = file.substring(0, file.length() - 3) + "_small.rf";
-      String largeName = file.substring(0, file.length() - 3) + "_large.rf";
+        if (!file.endsWith(".rf")) {
+          throw new IllegalArgumentException("File must end with .rf");
+        }
+        String smallName = file.substring(0, file.length() - 3) + "_small.rf";
+        String largeName = file.substring(0, file.length() - 3) + "_large.rf";
 
-      int blockSize = (int) aconf.getMemoryInBytes(Property.TABLE_FILE_BLOCK_SIZE);
-      Writer small = new RFile.Writer(new CachableBlockFile.Writer(fs, new Path(smallName), "gz", conf, aconf), blockSize);
-      small.startDefaultLocalityGroup();
-      Writer large = new RFile.Writer(new CachableBlockFile.Writer(fs, new Path(largeName), "gz", conf, aconf), blockSize);
-      large.startDefaultLocalityGroup();
+        int blockSize = (int) aconf.getMemoryInBytes(Property.TABLE_FILE_BLOCK_SIZE);
+        try (Writer small = new RFile.Writer(new CachableBlockFile.Writer(fs, new Path(smallName), "gz", conf, aconf), blockSize);
+            Writer large = new RFile.Writer(new CachableBlockFile.Writer(fs, new Path(largeName), "gz", conf, aconf), blockSize)) {
+          small.startDefaultLocalityGroup();
+          large.startDefaultLocalityGroup();
+
+          iter.seek(new Range(), new ArrayList<ByteSequence>(), false);
+          while (iter.hasTop()) {
+            Key key = iter.getTopKey();
+            Value value = iter.getTopValue();
+            if (key.getSize() + value.getSize() < opts.maxSize) {
+              small.append(key, value);
+            } else {
+              large.append(key, value);
+            }
+            iter.next();
+          }
 
-      iter.seek(new Range(), new ArrayList<ByteSequence>(), false);
-      while (iter.hasTop()) {
-        Key key = iter.getTopKey();
-        Value value = iter.getTopValue();
-        if (key.getSize() + value.getSize() < opts.maxSize) {
-          small.append(key, value);
-        } else {
-          large.append(key, value);
         }
-        iter.next();
       }
-
-      iter.close();
-      large.close();
-      small.close();
     }
   }