Merge remote-tracking branch 'upstream/1.10' into main
diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
index fbde1a8..25c5a52 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFile.java
@@ -355,14 +355,14 @@
/**
* This is an intermediate interface in a larger builder pattern. Supports setting the required
- * output sink to write a RFile to.
+ * output sink to write a RFile to. The filename parameter requires the ".rf" extension.
*
* @since 1.8.0
*/
public interface OutputArguments {
/**
* @param filename
- * name of file to write RFile data
+ * name of file to write RFile data, ending with the ".rf" extension
* @return this
*/
WriterFSOptions to(String filename);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
index bcadd52..0bae223 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriter.java
@@ -48,6 +48,7 @@
* <li>Keys must be appended in sorted order within a locality group.</li>
* <li>Locality groups must have a mutually exclusive set of column families.</li>
* <li>The default locality group must be started last.</li>
+ * <li>If using RFile.newWriter().to("filename.rf"), the ".rf" extension is required.</li>
* </ul>
*
* <p>
@@ -59,7 +60,7 @@
* Iterable<Entry<Key, Value>> localityGroup2Data = ...
* Iterable<Entry<Key, Value>> defaultGroupData = ...
*
- * try(RFileWriter writer = RFile.newWriter().to(file).build()) {
+ * try(RFileWriter writer = RFile.newWriter().to("filename.rf").build()) {
*
* // Start a locality group before appending data.
* writer.startNewLocalityGroup("groupA", "columnFam1", "columnFam2");
diff --git a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
index 7fae1ac..828dd84 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/rfile/RFileWriterBuilder.java
@@ -131,6 +131,10 @@
@Override
public WriterFSOptions to(String filename) {
Objects.requireNonNull(filename);
+ if (!filename.endsWith(".rf")) {
+ throw new IllegalArgumentException(
+ "Provided filename (" + filename + ") does not end with '.rf'");
+ }
this.out = new OutputArgs(filename);
return this;
}