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

leerho pushed a commit to branch Cleanup_phase2
in repository https://gitbox.apache.org/repos/asf/datasketches-java.git

commit 0795a6ea0b3bc63c63cfd1e764ced152429bf99d
Author: Lee Rhodes <[email protected]>
AuthorDate: Fri Aug 15 17:30:03 2025 -0700

    Improve & correct Javadocs
    
    Add some missing methods.
---
 .github/workflows/auto-jdk-matrix.yml              |  2 +-
 .github/workflows/auto-os-matrix.yml               |  2 +-
 .github/workflows/check_cpp_files.yml              |  2 +-
 .github/workflows/codeql-analysis.yml              |  2 +-
 .github/workflows/javadoc.yml                      |  2 +-
 .../datasketches/quantiles/DoublesUnionImpl.java   | 12 +++++++---
 .../quantiles/DirectCompactDoublesSketchTest.java  |  2 +-
 .../quantiles/DirectUpdateDoublesSketchTest.java   |  2 +-
 .../datasketches/quantiles/DoublesMiscTest.java    | 27 +++++++++++++++-------
 .../datasketches/quantiles/DoublesSketchTest.java  |  2 +-
 .../quantiles/DoublesUnionImplTest.java            |  2 +-
 .../datasketches/quantiles/DoublesUtilTest.java    |  2 +-
 .../QuantilesSketchCrossLanguageTest.java          |  2 +-
 13 files changed, 39 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/auto-jdk-matrix.yml 
b/.github/workflows/auto-jdk-matrix.yml
index a556d3e82..2ad97017c 100644
--- a/.github/workflows/auto-jdk-matrix.yml
+++ b/.github/workflows/auto-jdk-matrix.yml
@@ -20,7 +20,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        jdk: [ 21 ]
+        jdk: [ 24 ]
 
     env:
       JDK_VERSION: ${{ matrix.jdk }}
diff --git a/.github/workflows/auto-os-matrix.yml 
b/.github/workflows/auto-os-matrix.yml
index 413b7a957..4aca36642 100644
--- a/.github/workflows/auto-os-matrix.yml
+++ b/.github/workflows/auto-os-matrix.yml
@@ -21,7 +21,7 @@ jobs:
       fail-fast: false
 
       matrix:
-        jdk: [ 21 ]
+        jdk: [ 24 ]
         os: [ windows-latest, ubuntu-latest, macos-latest ]
         include:
           - os: windows-latest
diff --git a/.github/workflows/check_cpp_files.yml 
b/.github/workflows/check_cpp_files.yml
index 778859d0d..de53004f6 100644
--- a/.github/workflows/check_cpp_files.yml
+++ b/.github/workflows/check_cpp_files.yml
@@ -27,7 +27,7 @@ jobs:
       - name: Setup Java
         uses: actions/setup-java@v4
         with:
-          java-version: '21'
+          java-version: '24'
           distribution: 'temurin'
 
       - name: Configure C++ build
diff --git a/.github/workflows/codeql-analysis.yml 
b/.github/workflows/codeql-analysis.yml
index f3fde1de0..d934c4878 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -35,7 +35,7 @@ jobs:
         with:
           distribution: 'temurin'
           cache: 'maven'
-          java-version: '21'
+          java-version: '24'
 
       - name: Initialize CodeQL
         uses: github/codeql-action/init@v3
diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml
index 977c87b27..42ee0981c 100644
--- a/.github/workflows/javadoc.yml
+++ b/.github/workflows/javadoc.yml
@@ -16,7 +16,7 @@ jobs:
       - name: Setup Java
         uses: actions/setup-java@v4
         with:
-          java-version: '21'
+          java-version: '24'
           distribution: 'temurin'
 
       - name: Echo Java Version
diff --git 
a/src/main/java/org/apache/datasketches/quantiles/DoublesUnionImpl.java 
b/src/main/java/org/apache/datasketches/quantiles/DoublesUnionImpl.java
index 2f2c55bbf..0c7a4468f 100644
--- a/src/main/java/org/apache/datasketches/quantiles/DoublesUnionImpl.java
+++ b/src/main/java/org/apache/datasketches/quantiles/DoublesUnionImpl.java
@@ -20,6 +20,7 @@
 package org.apache.datasketches.quantiles;
 
 import static org.apache.datasketches.common.Util.LS;
+import static 
org.apache.datasketches.quantiles.ClassicUtil.checkIsMemorySegmentCompact;
 import static org.apache.datasketches.quantiles.DoublesUtil.copyToHeap;
 
 import java.lang.foreign.MemorySegment;
@@ -111,8 +112,8 @@ final class DoublesUnionImpl extends DoublesUnion {
   }
 
   /**
-   * Returns an updatable Union object that wraps the data of the given 
MemorySegment
-   * image of a updatable DoublesSketch. The data of the Union will remain in 
the MemorySegment.
+   * Returns an Union object that wraps the data of the given MemorySegment 
image of a UpdateDoublesSketch.
+   * The data of the Union will remain in the MemorySegment.
    *
    * @param srcSeg A MemorySegment image of an updatable DoublesSketch to be 
used as the data structure for the union and will be modified.
    * @param mSegReq the MemorySegmentRequest used if the given MemorySegment 
needs to expand.
@@ -138,7 +139,12 @@ final class DoublesUnionImpl extends DoublesUnion {
   @Override
   public void union(final MemorySegment seg) {
     Objects.requireNonNull(seg);
-    gadget_ = updateLogic(maxK_, gadget_, DoublesSketch.writableWrap(seg, 
null));
+    if (checkIsMemorySegmentCompact(seg)) {
+      gadget_ = updateLogic(maxK_, gadget_, DoublesSketch.wrap(seg));
+    } else {
+      gadget_ = updateLogic(maxK_, gadget_, DoublesSketch.writableWrap(seg, 
null));
+    }
+
     gadget_.doublesSV = null;
   }
 
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DirectCompactDoublesSketchTest.java
 
b/src/test/java/org/apache/datasketches/quantiles/DirectCompactDoublesSketchTest.java
index 946eca5ca..973b42846 100644
--- 
a/src/test/java/org/apache/datasketches/quantiles/DirectCompactDoublesSketchTest.java
+++ 
b/src/test/java/org/apache/datasketches/quantiles/DirectCompactDoublesSketchTest.java
@@ -97,7 +97,7 @@ public class DirectCompactDoublesSketchTest {
     final CompactDoublesSketch s1 = DoublesSketch.builder().build().compact();
     final MemorySegment seg
             = 
MemorySegment.ofBuffer(ByteBuffer.wrap(s1.toByteArray()).order(ByteOrder.nativeOrder()));
-    final DoublesSketch s2 = DoublesSketch.wrap(seg, 
MemorySegmentRequest.DEFAULT);
+    final DoublesSketch s2 = DoublesSketch.wrap(seg);
     assertTrue(s2.isEmpty());
     assertEquals(s2.getN(), 0);
     assertTrue(Double.isNaN(s2.isEmpty() ? Double.NaN : s2.getMinItem()));
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DirectUpdateDoublesSketchTest.java
 
b/src/test/java/org/apache/datasketches/quantiles/DirectUpdateDoublesSketchTest.java
index 6ced470e6..17c7b0384 100644
--- 
a/src/test/java/org/apache/datasketches/quantiles/DirectUpdateDoublesSketchTest.java
+++ 
b/src/test/java/org/apache/datasketches/quantiles/DirectUpdateDoublesSketchTest.java
@@ -230,7 +230,7 @@ public class DirectUpdateDoublesSketchTest {
 
     final byte[] arr2 = sketch2.toByteArray(false);
     assertEquals(arr2.length, sketch2.getSerializedSizeBytes());
-    final DoublesSketch sketch3 = 
DoublesSketch.wrap(MemorySegment.ofArray(arr2), null);
+    final DoublesSketch sketch3 = 
DoublesSketch.writableWrap(MemorySegment.ofArray(arr2), null);
     assertEquals(sketch3.getMinItem(), 0.0);
     assertEquals(sketch3.getMaxItem(), 1999.0);
     assertEquals(sketch3.getQuantile(0.5), 1000.0, 10.0);
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DoublesMiscTest.java 
b/src/test/java/org/apache/datasketches/quantiles/DoublesMiscTest.java
index 049ed7da8..40b349d84 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DoublesMiscTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DoublesMiscTest.java
@@ -44,7 +44,7 @@ public class DoublesMiscTest {
     Assert.assertEquals(bytes.length, curBytes);
     //convert to MemorySegment
     final MemorySegment seg = MemorySegment.ofArray(bytes);
-    final UpdateDoublesSketch sk2 = (UpdateDoublesSketch) 
DoublesSketch.wrap(seg, null);
+    final UpdateDoublesSketch sk2 = (UpdateDoublesSketch) 
DoublesSketch.writableWrap(seg, null);
     assertEquals(seg.byteSize(), curBytes);
     sk2.update(3);
     sk2.update(4);
@@ -60,10 +60,8 @@ public class DoublesMiscTest {
     final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
     s1.update(1);
     s1.update(2);
-    //MemorySegment seg = 
MemorySegment.ofArray(ByteBuffer.wrap(s1.compact().toByteArray())
-    // .asReadOnlyBuffer().order(ByteOrder.nativeOrder())););
     final MemorySegment seg = 
MemorySegment.ofArray(s1.compact().toByteArray());
-    final DoublesSketch s2 = DoublesSketch.wrap(seg, null); // compact, so 
this is ok
+    final DoublesSketch s2 = DoublesSketch.wrap(seg); // compact, so this is ok
     assertEquals(s2.getMinItem(), 1.0);
     assertEquals(s2.getMaxItem(), 2.0);
     assertEquals(s2.getN(), 2);
@@ -123,7 +121,7 @@ public class DoublesMiscTest {
   public void wrapEmptyUpdateSketch() {
     final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
     final MemorySegment seg = 
MemorySegment.ofArray(s1.toByteArray()).asReadOnly();
-    final UpdateDoublesSketch s2 = (UpdateDoublesSketch) 
DoublesSketch.wrap(seg, null);
+    final UpdateDoublesSketch s2 = (UpdateDoublesSketch) 
DoublesSketch.writableWrap(seg, null);
     assertTrue(s2.isEmpty());
 
     // ensure the various put calls fail
@@ -189,7 +187,7 @@ public class DoublesMiscTest {
   public void wrapEmptyCompactSketch() {
     final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
     final MemorySegment seg = 
MemorySegment.ofArray(s1.compact().toByteArray());
-    final DoublesSketch s2 = DoublesSketch.wrap(seg, null); // compact, so 
this is ok
+    final DoublesSketch s2 = DoublesSketch.wrap(seg); // compact, so this is ok
     Assert.assertTrue(s2.isEmpty());
   }
 
@@ -207,7 +205,7 @@ public class DoublesMiscTest {
   }
 
   @Test
-  public void heapifyUnionFromCompact() {
+  public void initializeUnionFromCompactSegment() {
     final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
     s1.update(1);
     s1.update(2);
@@ -219,6 +217,19 @@ public class DoublesMiscTest {
     Assert.assertEquals(s2.getMaxItem(), 3.0);
   }
 
+  @Test
+  public void unionFromUpdatableSegment() {
+    final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
+    s1.update(1);
+    s1.update(2);
+    final MemorySegment seg = MemorySegment.ofArray(s1.toByteArray(false));
+    final DoublesUnion u = DoublesUnion.wrap(seg);
+    u.update(3);
+    final DoublesSketch s2 = u.getResult();
+    Assert.assertEquals(s2.getMinItem(), 1.0);
+    Assert.assertEquals(s2.getMaxItem(), 3.0);
+  }
+
   @Test
   public void wrapUnionFromHeap() {
     final UpdateDoublesSketch s1 = DoublesSketch.builder().build();
@@ -239,7 +250,7 @@ public class DoublesMiscTest {
     s1.update(1);
     s1.update(2);
     final MemorySegment seg = MemorySegment.ofArray(s1.toByteArray(true));
-    DoublesUnion.wrap(seg, null); //not from compact
+    DoublesUnion.wrap(seg, null); //compact seg
     fail();
   }
 
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java 
b/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
index 8d64c6bec..bcbb16cc2 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DoublesSketchTest.java
@@ -43,7 +43,7 @@ public class DoublesSketchTest {
     for (int i = 0; i < 1000; i++) {
       heapSketch.update(i);
     }
-    final DoublesSketch directSketch = 
DoublesSketch.wrap(MemorySegment.ofArray(heapSketch.toByteArray(false)), null);
+    final DoublesSketch directSketch = 
DoublesSketch.writableWrap(MemorySegment.ofArray(heapSketch.toByteArray(false)),
 null);
 
     assertEquals(directSketch.getMinItem(), 0.0);
     assertEquals(directSketch.getMaxItem(), 999.0);
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DoublesUnionImplTest.java 
b/src/test/java/org/apache/datasketches/quantiles/DoublesUnionImplTest.java
index dd58f16e3..094b786d3 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DoublesUnionImplTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DoublesUnionImplTest.java
@@ -371,7 +371,7 @@ public class DoublesUnionImplTest {
     union.union(sketch2);
     union.union(sketch1);
     final MemorySegment seg = 
MemorySegment.ofArray(union.getResult().toByteArray(true));
-    final DoublesSketch result = DoublesSketch.wrap(seg, null);
+    final DoublesSketch result = DoublesSketch.wrap(seg);
     assertEquals(result.getN(), n1 + n2);
     assertEquals(result.getK(), k);
 
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/DoublesUtilTest.java 
b/src/test/java/org/apache/datasketches/quantiles/DoublesUtilTest.java
index 0124b39cb..91f86f74f 100644
--- a/src/test/java/org/apache/datasketches/quantiles/DoublesUtilTest.java
+++ b/src/test/java/org/apache/datasketches/quantiles/DoublesUtilTest.java
@@ -85,7 +85,7 @@ public class DoublesUtilTest {
 
     // DirectCompactDoublesSketch
     final MemorySegment seg2 = MemorySegment.ofArray(hcds.toByteArray());
-    final DirectCompactDoublesSketch dcds = (DirectCompactDoublesSketch) 
DoublesSketch.wrap(seg2, null);
+    final DirectCompactDoublesSketch dcds = (DirectCompactDoublesSketch) 
DoublesSketch.wrap(seg2);
     final HeapUpdateDoublesSketch target4 = DoublesUtil.copyToHeap(dcds);
     DoublesSketchTest.testSketchEquality(huds, dcds);
     DoublesSketchTest.testSketchEquality(dcds, target4);
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/QuantilesSketchCrossLanguageTest.java
 
b/src/test/java/org/apache/datasketches/quantiles/QuantilesSketchCrossLanguageTest.java
index 0a4ed3c15..20ceab5ca 100644
--- 
a/src/test/java/org/apache/datasketches/quantiles/QuantilesSketchCrossLanguageTest.java
+++ 
b/src/test/java/org/apache/datasketches/quantiles/QuantilesSketchCrossLanguageTest.java
@@ -92,7 +92,7 @@ public class QuantilesSketchCrossLanguageTest {
     final int[] nArr = {0, 1, 10, 100, 1000, 10000, 100000, 1000000};
     for (final int n: nArr) {
       final byte[] byteArr = 
Files.readAllBytes(cppPath.resolve("quantiles_double_n" + n + "_cpp.sk"));
-      final DoublesSketch sk = 
DoublesSketch.wrap(MemorySegment.ofArray(byteArr), null);
+      final DoublesSketch sk = 
DoublesSketch.wrap(MemorySegment.ofArray(byteArr));
       assertTrue(n == 0 ? sk.isEmpty() : !sk.isEmpty());
       assertTrue(n > 128 ? sk.isEstimationMode() : !sk.isEstimationMode());
       assertEquals(sk.getN(), n);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to