This is an automated email from the ASF dual-hosted git repository.

DomGarguilo pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git


The following commit(s) were added to refs/heads/2.1 by this push:
     new 0b84299  Fix compile warnings from lossy casts and constructor escape 
(#311)
0b84299 is described below

commit 0b84299160602e415231406e254fce3e8d0d8589
Author: Dom G. <[email protected]>
AuthorDate: Thu Jun 25 18:27:48 2026 -0400

    Fix compile warnings from lossy casts and constructor escape (#311)
    
    - Fix lossy compound assignment warnings.
    - Avoid `DataWriter` constructor `this` escape.
    - Close `BatchWriter` directly with try-with-resources.
---
 .../apache/accumulo/testing/continuous/ManySplits.java |  2 +-
 .../testing/randomwalk/sequential/BatchVerify.java     |  2 +-
 .../org/apache/accumulo/testing/stress/DataWriter.java | 18 +++++++++---------
 .../java/org/apache/accumulo/testing/stress/Write.java |  8 ++++++--
 4 files changed, 17 insertions(+), 13 deletions(-)

diff --git 
a/src/main/java/org/apache/accumulo/testing/continuous/ManySplits.java 
b/src/main/java/org/apache/accumulo/testing/continuous/ManySplits.java
index d28f557..920c990 100644
--- a/src/main/java/org/apache/accumulo/testing/continuous/ManySplits.java
+++ b/src/main/java/org/apache/accumulo/testing/continuous/ManySplits.java
@@ -168,7 +168,7 @@ public class ManySplits {
 
         // wait for all tablets to reach the expected sum file size
         tableNames.stream().parallel().forEach(tableName -> {
-          int elapsedMillis = 0;
+          long elapsedMillis = 0;
           long sleepMillis = SECONDS.toMillis(1);
           try {
             // wait for each tablet to reach the expected sum file size
diff --git 
a/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/BatchVerify.java
 
b/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/BatchVerify.java
index 594c4ab..e13f21a 100644
--- 
a/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/BatchVerify.java
+++ 
b/src/main/java/org/apache/accumulo/testing/randomwalk/sequential/BatchVerify.java
@@ -53,7 +53,7 @@ public class BatchVerify extends Test {
 
     try (BatchScanner scanner =
         client.createBatchScanner(state.getString("seqTableName"), new 
Authorizations(), 2)) {
-      int count = 0;
+      long count = 0;
       List<Range> ranges = new ArrayList<>();
       while (count < numVerify) {
         long rangeStart = env.getRandom().nextInt((int) numWrites);
diff --git a/src/main/java/org/apache/accumulo/testing/stress/DataWriter.java 
b/src/main/java/org/apache/accumulo/testing/stress/DataWriter.java
index 5cc4c90..959c675 100644
--- a/src/main/java/org/apache/accumulo/testing/stress/DataWriter.java
+++ b/src/main/java/org/apache/accumulo/testing/stress/DataWriter.java
@@ -30,15 +30,21 @@ import org.slf4j.LoggerFactory;
 public class DataWriter extends Stream<Void> implements AutoCloseable {
   private final BatchWriter writer;
   private final RandomMutations mutations;
-  private final Cleanable cleanable;
+  private Cleanable cleanable;
   private final AtomicBoolean closed = new AtomicBoolean(false);
 
   private static final Logger log = LoggerFactory.getLogger(DataWriter.class);
 
-  public DataWriter(BatchWriter writer, RandomMutations mutations) {
+  private DataWriter(BatchWriter writer, RandomMutations mutations) {
     this.writer = writer;
     this.mutations = mutations;
-    this.cleanable = CleanerUtil.unclosed(this, DataWriter.class, closed, log, 
writer);
+  }
+
+  public static DataWriter create(BatchWriter writer, RandomMutations 
mutations) {
+    DataWriter dataWriter = new DataWriter(writer, mutations);
+    dataWriter.cleanable =
+        CleanerUtil.unclosed(dataWriter, DataWriter.class, dataWriter.closed, 
log, writer);
+    return dataWriter;
   }
 
   @Override
@@ -57,12 +63,6 @@ public class DataWriter extends Stream<Void> implements 
AutoCloseable {
       // deregister cleanable, but it won't run because it checks
       // the value of closed first, which is now true
       cleanable.clean();
-      try {
-        writer.close();
-      } catch (MutationsRejectedException e) {
-        System.err.println("Error closing batch writer.");
-        e.printStackTrace();
-      }
     }
   }
 }
diff --git a/src/main/java/org/apache/accumulo/testing/stress/Write.java 
b/src/main/java/org/apache/accumulo/testing/stress/Write.java
index 6f2c71d..de3b65f 100644
--- a/src/main/java/org/apache/accumulo/testing/stress/Write.java
+++ b/src/main/java/org/apache/accumulo/testing/stress/Write.java
@@ -20,6 +20,7 @@ package org.apache.accumulo.testing.stress;
 
 import org.apache.accumulo.core.client.Accumulo;
 import org.apache.accumulo.core.client.AccumuloClient;
+import org.apache.accumulo.core.client.BatchWriter;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
 
@@ -54,7 +55,7 @@ public class Write {
         writeDelay = 0;
       }
 
-      try (DataWriter dw = new DataWriter(c.createBatchWriter(opts.tableName), 
new RandomMutations(
+      RandomMutations mutations = new RandomMutations(
           // rows
           new RandomByteArrays(new RandomWithinRange(opts.row_seed, 
opts.rowMin(), opts.rowMax())),
           // cfs
@@ -67,7 +68,10 @@ public class Write {
           // number of cells per row
           new RandomWithinRange(opts.row_width_seed, opts.rowWidthMin(), 
opts.rowWidthMax()),
           // max cells per mutation
-          opts.max_cells_per_mutation))) {
+          opts.max_cells_per_mutation);
+
+      try (BatchWriter batchWriter = c.createBatchWriter(opts.tableName);
+          DataWriter dw = DataWriter.create(batchWriter, mutations)) {
         while (true) {
           dw.next();
           if (writeDelay > 0) {

Reply via email to