diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java index 9a449ad21c2e..8f513d096dc3 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/Replication.java @@ -226,7 +226,7 @@ public ReplicationSourceManager getReplicationManager() { return this.replicationManager; } - void addHFileRefsToQueue(TableName tableName, byte[] family, List> pairs) + public void addHFileRefsToQueue(TableName tableName, byte[] family, List> pairs) throws IOException { try { this.replicationManager.addHFileRefs(tableName, family, pairs); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java index b7e437f46241..1bba42633fff 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java @@ -32,7 +32,6 @@ import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor; import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.coprocessor.RegionObserver; -import org.apache.hadoop.hbase.regionserver.HRegionServer; import org.apache.hadoop.hbase.regionserver.RegionServerServices; import org.apache.hadoop.hbase.util.Pair; import org.apache.yetus.audience.InterfaceAudience; @@ -60,6 +59,8 @@ public void preCommitStoreFile(final ObserverContext> familyPaths = new ArrayList<>(); + HFile.WriterFactory hFileFactory = HFile.getWriterFactoryNoCache( + TEST_UTIL.getConfiguration()); + File hFileLocation = testFolder.newFile(); + try (FSDataOutputStream out = new FSDataOutputStream( + new FileOutputStream(hFileLocation), null)) { + hFileFactory.withOutputStream(out); + hFileFactory.withFileContext(new HFileContext()); + HFile.Writer writer = hFileFactory.create(); + try { + byte[] randomBytes = new byte[100]; + writer.append(new KeyValue(CellUtil.createCell(randomBytes, fam1, randomBytes, + 0L, KeyValue.Type.Put.getCode(), randomBytes))); + } finally { + writer.close(); + } + } + familyPaths.add(new Pair<>(fam1, hFileLocation.getAbsoluteFile().getAbsolutePath())); + region.bulkLoadHFiles(familyPaths, false, null); + } + /** * The same as HRegion class, the only difference is that instantiateHStore will * create a different HStore - HStoreForTesting. [HBASE-8518]