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

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

commit 0d0939522c509cf974bb0b17493dfbb1a3197307
Author: Lee Rhodes <[email protected]>
AuthorDate: Sun Aug 3 13:04:51 2025 -0700

    Made detection of BigEndian consistent throughout.
    
    Added finals (automatic) where possible.
    
    Added parentheses (automatic) to reduce ambiguity
    
    Fixed some missing license headers.
---
 pom.xml                                            |  5 +-
 .../BigEndianNativeOrderNotSupportedException.java | 35 +++++++++
 .../org/apache/datasketches/common/Family.java     | 14 ++--
 .../java/org/apache/datasketches/common/Util.java  | 11 ++-
 .../org/apache/datasketches/cpc/PreambleUtil.java  | 14 +---
 .../org/apache/datasketches/hll/PreambleUtil.java  | 12 +--
 .../datasketches/quantiles/PreambleUtil.java       | 11 +--
 .../apache/datasketches/sampling/PreambleUtil.java | 14 ----
 .../theta/DirectQuickSelectSketch.java             |  2 -
 .../apache/datasketches/theta/HeapAlphaSketch.java | 34 ++++-----
 .../datasketches/theta/HeapQuickSelectSketch.java  |  2 +-
 .../datasketches/theta/IntersectionImpl.java       |  2 +-
 .../apache/datasketches/theta/PreambleUtil.java    | 15 +---
 .../datasketches/theta/SingleItemSketch.java       |  6 +-
 .../apache/datasketches/theta/UpdateSketch.java    |  8 +-
 .../apache/datasketches/tuple/CompactSketch.java   | 19 ++---
 .../datasketches/tuple/QuickSelectSketch.java      | 23 ++----
 .../tuple/arrayofdoubles/ArrayOfDoublesSketch.java |  2 +-
 .../DirectArrayOfDoublesCompactSketch.java         | 21 +-----
 .../DirectArrayOfDoublesQuickSelectSketch.java     | 14 +---
 .../HeapArrayOfDoublesCompactSketch.java           | 12 +--
 .../HeapArrayOfDoublesQuickSelectSketch.java       |  9 +--
 .../datasketches/count/CountMinSketchTest.java     |  7 +-
 .../datasketches/hash/MurmurHash3FFM21bTest.java   |  2 -
 .../kll/KllMemorySegmentRequestApp.java            | 19 +++++
 .../ClassicQuantilesMemorySegmentRequestApp.java   | 19 +++++
 .../theta/DirectQuickSelectSketchTest.java         |  9 +--
 .../theta/ReadOnlyMemorySegmentTest.java           | 86 ++++++++++------------
 .../apache/datasketches/theta/UnionImplTest.java   | 13 ----
 tools/testng.xml                                   | 20 +++++
 30 files changed, 214 insertions(+), 246 deletions(-)

diff --git a/pom.xml b/pom.xml
index d1de2064d..8990e1eb0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -96,10 +96,9 @@ under the License.
     <!-- System-wide properties -->
     <maven.version>3.9.10</maven.version>
     <java.version>24</java.version>
-    <jvm-arguments>-Xmx10g -Duser.language=en -Duser.country=US 
-Dfile.encoding=UTF-8</jvm-arguments>
+    <jvm-arguments>-Xmx4g -Duser.language=en -Duser.country=US 
-Dfile.encoding=UTF-8</jvm-arguments>
     <maven.compiler.source>${java.version}</maven.compiler.source>
     <maven.compiler.target>${java.version}</maven.compiler.target>
-    <argLine>${jvm-arguments}</argLine>
     <charset.encoding>UTF-8</charset.encoding>
     
<project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding>
     
<project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding>
@@ -159,7 +158,7 @@ under the License.
           <version>${maven-compiler-plugin.version}</version>
           <configuration>
             <compilerArgs>
-              <arg>${jvm-arguments}</arg>
+              <arg></arg>
             </compilerArgs>
           </configuration>
         </plugin>
diff --git 
a/src/main/java/org/apache/datasketches/common/BigEndianNativeOrderNotSupportedException.java
 
b/src/main/java/org/apache/datasketches/common/BigEndianNativeOrderNotSupportedException.java
new file mode 100644
index 000000000..67dcd34d7
--- /dev/null
+++ 
b/src/main/java/org/apache/datasketches/common/BigEndianNativeOrderNotSupportedException.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.datasketches.common;
+
+/**
+ * The DataSketches Library is not supported on Big Endian machines.
+ */
+public class BigEndianNativeOrderNotSupportedException extends 
SketchesException {
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * Constructs a new runtime exception with the message:
+   * "The DataSketches Library is not supported on Big Endian machines."
+   */
+  public BigEndianNativeOrderNotSupportedException() {
+    super("The DataSketches Library is not supported on Big Endian machines.");
+  }
+}
diff --git a/src/main/java/org/apache/datasketches/common/Family.java 
b/src/main/java/org/apache/datasketches/common/Family.java
index 829a95960..0ca3d7cb8 100644
--- a/src/main/java/org/apache/datasketches/common/Family.java
+++ b/src/main/java/org/apache/datasketches/common/Family.java
@@ -19,6 +19,7 @@
 
 package org.apache.datasketches.common;
 
+import java.nio.ByteOrder;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
@@ -165,19 +166,22 @@ public enum Family {
 
   private static final Map<Integer, Family> lookupID = new HashMap<>();
   private static final Map<String, Family> lookupFamName = new HashMap<>();
-  private int id_;
-  private String famName_;
-  private int minPreLongs_;
-  private int maxPreLongs_;
+  private final int id_;
+  private final String famName_;
+  private final int minPreLongs_;
+  private final int maxPreLongs_;
 
   static {
     for (final Family f : values()) {
       lookupID.put(f.getID(), f);
       lookupFamName.put(f.getFamilyName().toUpperCase(Locale.US), f);
     }
+    if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) {
+      throw new BigEndianNativeOrderNotSupportedException();
+    }
   }
 
-  private Family(final int id, final String famName, final int minPreLongs, 
final int maxPreLongs) {
+  Family(final int id, final String famName, final int minPreLongs, final int 
maxPreLongs) {
     id_ = id;
     famName_ = famName.toUpperCase(Locale.US);
     minPreLongs_ = minPreLongs;
diff --git a/src/main/java/org/apache/datasketches/common/Util.java 
b/src/main/java/org/apache/datasketches/common/Util.java
index 2c934522c..c36e15937 100644
--- a/src/main/java/org/apache/datasketches/common/Util.java
+++ b/src/main/java/org/apache/datasketches/common/Util.java
@@ -28,6 +28,7 @@ import static java.lang.foreign.ValueLayout.JAVA_BYTE;
 import static org.apache.datasketches.hash.MurmurHash3.hash;
 
 import java.lang.foreign.MemorySegment;
+import java.nio.ByteOrder;
 import java.util.Comparator;
 
 /**
@@ -38,6 +39,12 @@ import java.util.Comparator;
 @SuppressWarnings("unchecked")
 public final class Util {
 
+  static {
+    if (ByteOrder.nativeOrder() != ByteOrder.LITTLE_ENDIAN) {
+      throw new BigEndianNativeOrderNotSupportedException();
+    }
+  }
+
   /**
    * The java line separator character as a String.
    */
@@ -812,7 +819,7 @@ public final class Util {
   }
 
   /**
-   * Is item1 Less-Than item2
+   * Is item1 Less-Than item2?
    * @param <T> the type
    * @param item1 item one
    * @param item2 item two
@@ -824,7 +831,7 @@ public final class Util {
   }
 
   /**
-   * Is item1 Less-Than-Or-Equal-To item2
+   * Is item1 Less-Than-Or-Equal-To item2?
    * @param <T> the type
    * @param item1 item one
    * @param item2 item two
diff --git a/src/main/java/org/apache/datasketches/cpc/PreambleUtil.java 
b/src/main/java/org/apache/datasketches/cpc/PreambleUtil.java
index 713e72ded..80960f69a 100644
--- a/src/main/java/org/apache/datasketches/cpc/PreambleUtil.java
+++ b/src/main/java/org/apache/datasketches/cpc/PreambleUtil.java
@@ -31,7 +31,6 @@ import static 
org.apache.datasketches.cpc.RuntimeAsserts.rtAssert;
 import static org.apache.datasketches.cpc.RuntimeAsserts.rtAssertEquals;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Objects;
 
 import org.apache.datasketches.common.Family;
@@ -142,12 +141,6 @@ final class PreambleUtil {
 
   private PreambleUtil() {}
 
-  static {
-    if (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN) {
-      throw new SketchesStateException("This sketch will not work on Big 
Endian CPUs.");
-    }
-  }
-
   private static final String fmt = "%10d%10x";
 
   /**
@@ -156,7 +149,7 @@ final class PreambleUtil {
   static final byte SER_VER = 1;
 
   //Flag bit masks, Byte 5
-  static final int BIG_ENDIAN_FLAG_MASK     = 1; //Reserved.
+  static final int RESERVED_FLAG_MASK       = 1; //Reserved.
   static final int COMPRESSED_FLAG_MASK     = 2;
   static final int HIP_FLAG_MASK            = 4;
   static final int SUP_VAL_FLAG_MASK        = 8; //num Suprising Values > 0
@@ -584,7 +577,6 @@ final class PreambleUtil {
 
     //Flags of the Flags byte
     final String flagsStr = zeroPad(Integer.toBinaryString(flags), 8) + ", " + 
(flags);
-    final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
     final boolean compressed = (flags & COMPRESSED_FLAG_MASK) > 0;
     final boolean hasHip = (flags & HIP_FLAG_MASK) > 0;
     final boolean hasSV = (flags & SUP_VAL_FLAG_MASK) > 0;
@@ -593,8 +585,6 @@ final class PreambleUtil {
     final int formatOrdinal = (flags >>> 2) & 0x7;
     final Format format = Format.ordinalToFormat(formatOrdinal);
 
-    final String nativeOrderStr = ByteOrder.nativeOrder().toString();
-
     long numCoupons = 0;
     long numSv = 0;
     long winOffset = 0;
@@ -616,8 +606,6 @@ final class PreambleUtil {
     sb.append("Byte 3: lgK                     : ").append(lgK).append(LS);
     sb.append("Byte 4: First Interesting Col   : ").append(fiCol).append(LS);
     sb.append("Byte 5: Flags                   : 
").append(flagsStr).append(LS);
-    sb.append("  BIG_ENDIAN_STORAGE            : 
").append(bigEndian).append(LS);
-    sb.append("  (Native Byte Order)           : 
").append(nativeOrderStr).append(LS);
     sb.append("  Compressed                    : 
").append(compressed).append(LS);
     sb.append("  Has HIP                       : ").append(hasHip).append(LS);
     sb.append("  Has Surprising Values         : ").append(hasSV).append(LS);
diff --git a/src/main/java/org/apache/datasketches/hll/PreambleUtil.java 
b/src/main/java/org/apache/datasketches/hll/PreambleUtil.java
index d824dea59..a43a6f121 100644
--- a/src/main/java/org/apache/datasketches/hll/PreambleUtil.java
+++ b/src/main/java/org/apache/datasketches/hll/PreambleUtil.java
@@ -32,7 +32,6 @@ import static 
org.apache.datasketches.hll.HllUtil.RESIZE_DENOM;
 import static org.apache.datasketches.hll.HllUtil.RESIZE_NUMER;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 
 import org.apache.datasketches.common.Family;
 
@@ -133,7 +132,7 @@ final class PreambleUtil {
   static int HLL_BYTE_ARR_START             = 40;
 
   //Flag bit masks
-  static final int BIG_ENDIAN_FLAG_MASK     = 1; //Set but not read. Reserved.
+  static final int RESERVED_FLAG_MASK       = 1; //Set to 0 but not read.
   static final int READ_ONLY_FLAG_MASK      = 2; //Set but not read. Reserved.
   static final int EMPTY_FLAG_MASK          = 4;
   static final int COMPACT_FLAG_MASK        = 8;
@@ -150,8 +149,6 @@ final class PreambleUtil {
   static final int LIST_PREINTS             = 2;
   static final int HASH_SET_PREINTS         = 3;
   static final int HLL_PREINTS              = 10;
-  static final boolean NATIVE_ORDER_IS_BIG_ENDIAN  =
-      (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN);
 
   static String toString(final byte[] byteArr) {
     final MemorySegment seg = MemorySegment.ofArray(byteArr);
@@ -168,8 +165,6 @@ final class PreambleUtil {
     final int flags = seg.get(JAVA_BYTE, FLAGS_BYTE);
     //Flags
     final String flagsStr = zeroPad(Integer.toBinaryString(flags), 8) + ", " + 
(flags);
-    final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
-    final String nativeOrder = ByteOrder.nativeOrder().toString();
     final boolean compact = (flags & COMPACT_FLAG_MASK) > 0;
     final boolean oooFlag = (flags & OUT_OF_ORDER_FLAG_MASK) > 0;
     final boolean readOnly = (flags & READ_ONLY_FLAG_MASK) > 0;
@@ -219,8 +214,6 @@ final class PreambleUtil {
     }
     //expand byte 5: Flags
     sb.append("Byte 5: Flags:                : ").append(flagsStr).append(LS);
-    sb.append("  BIG_ENDIAN_STORAGE          : ").append(bigEndian).append(LS);
-    sb.append("  (Native Byte Order)         : 
").append(nativeOrder).append(LS);
     sb.append("  READ_ONLY                   : ").append(readOnly).append(LS);
     sb.append("  EMPTY                       : ").append(empty).append(LS);
     sb.append("  COMPACT                     : ").append(compact).append(LS);
@@ -286,8 +279,7 @@ final class PreambleUtil {
   }
 
   static int extractLgArr(final MemorySegment seg) {
-    final int lgArr = seg.get(JAVA_BYTE, LG_ARR_BYTE) & 0XFF;
-    return lgArr;
+    return seg.get(JAVA_BYTE, LG_ARR_BYTE) & 0XFF;
   }
 
   static void insertLgArr(final MemorySegment wseg, final int lgArr) {
diff --git a/src/main/java/org/apache/datasketches/quantiles/PreambleUtil.java 
b/src/main/java/org/apache/datasketches/quantiles/PreambleUtil.java
index bb4cccee3..fdaa5bc19 100644
--- a/src/main/java/org/apache/datasketches/quantiles/PreambleUtil.java
+++ b/src/main/java/org/apache/datasketches/quantiles/PreambleUtil.java
@@ -28,7 +28,6 @@ import static org.apache.datasketches.common.Util.LS;
 import static 
org.apache.datasketches.quantiles.ClassicUtil.computeRetainedItems;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 
 //@formatter:off
 
@@ -92,15 +91,12 @@ final class PreambleUtil {
   static final int COMBINED_BUFFER            = 32; //to 39 (Only for 
DoublesSketch)
 
   // flag bit masks
-  static final int BIG_ENDIAN_FLAG_MASK       = 1;
+  static final int RESERVED_FLAG_MASK         = 1;
   static final int READ_ONLY_FLAG_MASK        = 2;
   static final int EMPTY_FLAG_MASK            = 4;
   static final int COMPACT_FLAG_MASK          = 8;
   static final int ORDERED_FLAG_MASK          = 16;
 
-  static final boolean NATIVE_ORDER_IS_BIG_ENDIAN  =
-      (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN);
-
   /**
    * Default K for about 1.7% normalized rank accuracy
    */
@@ -143,8 +139,6 @@ final class PreambleUtil {
     final int familyID = extractFamilyID(srcSeg);
     final String famName = idToFamily(familyID).toString();
     final int flags = extractFlags(srcSeg);
-    final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
-    final String nativeOrder = ByteOrder.nativeOrder().toString();
     final boolean readOnly  = (flags & READ_ONLY_FLAG_MASK) > 0;
     final boolean empty = (flags & EMPTY_FLAG_MASK) > 0;
     final boolean compact = (flags & COMPACT_FLAG_MASK) > 0;
@@ -166,8 +160,7 @@ final class PreambleUtil {
     sb.append("Byte  1: Serialization Version: ").append(serVer).append(LS);
     sb.append("Byte  2: Family               : ").append(famName).append(LS);
     sb.append("Byte  3: Flags Field          : ").append(String.format("%02o", 
flags)).append(LS);
-    sb.append("  BIG ENDIAN                  : ").append(bigEndian).append(LS);
-    sb.append("  (Native Byte Order)         : 
").append(nativeOrder).append(LS);
+    sb.append("  RESERVED                    : ").append(LS);
     sb.append("  READ ONLY                   : ").append(readOnly).append(LS);
     sb.append("  EMPTY                       : ").append(empty).append(LS);
     sb.append("  COMPACT                     : ").append(compact).append(LS);
diff --git a/src/main/java/org/apache/datasketches/sampling/PreambleUtil.java 
b/src/main/java/org/apache/datasketches/sampling/PreambleUtil.java
index f2697b59d..52d93362e 100644
--- a/src/main/java/org/apache/datasketches/sampling/PreambleUtil.java
+++ b/src/main/java/org/apache/datasketches/sampling/PreambleUtil.java
@@ -28,7 +28,6 @@ import static org.apache.datasketches.common.Util.LS;
 import static org.apache.datasketches.common.Util.zeroPad;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Locale;
 
 import org.apache.datasketches.common.Family;
@@ -210,8 +209,6 @@ final class PreambleUtil {
   static final int EBPPS_RHO_DOUBLE      = 32;
 
   // flag bit masks
-  //static final int BIG_ENDIAN_FLAG_MASK = 1;
-  //static final int READ_ONLY_FLAG_MASK  = 2;
   static final int EMPTY_FLAG_MASK      = 4;
   static final int HAS_PARTIAL_ITEM_MASK = 8; // EBPPS only
   static final int GADGET_FLAG_MASK     = 128;
@@ -221,9 +218,6 @@ final class PreambleUtil {
   static final int VAROPT_SER_VER       = 2;
   static final int EBPPS_SER_VER        = 1;
 
-  static final boolean NATIVE_ORDER_IS_BIG_ENDIAN  =
-      (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN);
-
   // STRINGS
 
   /**
@@ -274,8 +268,6 @@ final class PreambleUtil {
     // Flags
     final int flags = extractFlags(seg);
     final String flagsStr = zeroPad(Integer.toBinaryString(flags), 8) + ", " + 
(flags);
-    //final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
-    //final String nativeOrder = ByteOrder.nativeOrder().toString();
     //final boolean readOnly = (flags & READ_ONLY_FLAG_MASK) > 0;
     final boolean isEmpty = (flags & EMPTY_FLAG_MASK) > 0;
     final boolean isGadget = (flags & GADGET_FLAG_MASK) > 0;
@@ -304,8 +296,6 @@ final class PreambleUtil {
       .append("Byte  1: Serialization Version: ").append(serVer).append(LS)
       .append("Byte  2: Family               : 
").append(family.toString()).append(LS)
       .append("Byte  3: Flags Field          : ").append(flagsStr).append(LS)
-      //.append("  BIG_ENDIAN_STORAGE          : 
").append(bigEndian).append(LS)
-      //.append("  (Native Byte Order)         : 
").append(nativeOrder).append(LS)
       //.append("  READ_ONLY                   : ").append(readOnly).append(LS)
       .append("  EMPTY                       : ").append(isEmpty).append(LS);
     if (family == Family.VAROPT) {
@@ -344,8 +334,6 @@ final class PreambleUtil {
     // Flags
     final int flags = extractFlags(seg);
     final String flagsStr = zeroPad(Integer.toBinaryString(flags), 8) + ", " + 
(flags);
-    //final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
-    //final String nativeOrder = ByteOrder.nativeOrder().toString();
     //final boolean readOnly = (flags & READ_ONLY_FLAG_MASK) > 0;
     final boolean isEmpty = (flags & EMPTY_FLAG_MASK) > 0;
 
@@ -366,8 +354,6 @@ final class PreambleUtil {
             + "Byte  1: Serialization Version    : " + serVer + LS
             + "Byte  2: Family                   : " + family.toString() + LS
             + "Byte  3: Flags Field              : " + flagsStr + LS
-            //+ "  BIG_ENDIAN_STORAGE              : " + bigEndian + LS
-            //+ "  (Native Byte Order)             : " + nativeOrder + LS
             //+ "  READ_ONLY                       : " + readOnly + LS
             + "  EMPTY                           : " + isEmpty + LS
             + "Bytes  4-7: Max Sketch Size (maxK): " + k + LS
diff --git 
a/src/main/java/org/apache/datasketches/theta/DirectQuickSelectSketch.java 
b/src/main/java/org/apache/datasketches/theta/DirectQuickSelectSketch.java
index 7356d4d5f..22e37ca6f 100644
--- a/src/main/java/org/apache/datasketches/theta/DirectQuickSelectSketch.java
+++ b/src/main/java/org/apache/datasketches/theta/DirectQuickSelectSketch.java
@@ -151,7 +151,6 @@ class DirectQuickSelectSketch extends 
DirectQuickSelectSketchR {
     insertFamilyID(dstSeg, family.getID());                //byte 2
     insertLgNomLongs(dstSeg, lgNomLongs);                  //byte 3
     insertLgArrLongs(dstSeg, lgArrLongs);                  //byte 4
-    //flags: bigEndian = readOnly = compact = ordered = false; empty = true : 
00100 = 4
     insertFlags(dstSeg, EMPTY_FLAG_MASK);                  //byte 5
     insertSeedHash(dstSeg, Util.computeSeedHash(seed));    //bytes 6,7
     insertCurCount(dstSeg, 0);                             //bytes 8-11
@@ -250,7 +249,6 @@ class DirectQuickSelectSketch extends 
DirectQuickSelectSketchR {
     final int preambleLongs = wseg_.get(JAVA_BYTE, PREAMBLE_LONGS_BYTE) & 0X3F;
     final int preBytes = preambleLongs << 3;
     wseg_.asSlice(preBytes, arrLongs * 8L).fill((byte)0);
-    //flags: bigEndian = readOnly = compact = ordered = false; empty = true.
     wseg_.set(JAVA_BYTE, FLAGS_BYTE, (byte) EMPTY_FLAG_MASK);
     wseg_.set(JAVA_INT_UNALIGNED, RETAINED_ENTRIES_INT, 0);
     final float p = wseg_.get(JAVA_FLOAT_UNALIGNED, P_FLOAT);
diff --git a/src/main/java/org/apache/datasketches/theta/HeapAlphaSketch.java 
b/src/main/java/org/apache/datasketches/theta/HeapAlphaSketch.java
index b4b7848c5..8a35631ab 100644
--- a/src/main/java/org/apache/datasketches/theta/HeapAlphaSketch.java
+++ b/src/main/java/org/apache/datasketches/theta/HeapAlphaSketch.java
@@ -107,7 +107,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
     has.hashTableThreshold_ = setHashTableThreshold(lgNomLongs, lgArrLongs);
     has.curCount_ = 0;
     has.thetaLong_ = (long)(p * LONG_MAX_VALUE_AS_DOUBLE);
-    has.empty_ = true; //other flags: bigEndian = readOnly = compact = ordered 
= false;
+    has.empty_ = true; //other flags: reserved = readOnly = compact = ordered 
= false;
     has.cache_ = new long[1 << lgArrLongs];
     return has;
   }
@@ -200,8 +200,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
   public int getRetainedEntries(final boolean valid) {
     if (curCount_ > 0) {
       if (valid && isDirty()) {
-        final int curCount = HashOperations.countPart(getCache(), 
getLgArrLongs(), getThetaLong());
-        return curCount;
+        return HashOperations.countPart(getCache(), getLgArrLongs(), 
getThetaLong());
       }
     }
     return curCount_;
@@ -262,7 +261,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
   }
 
   @Override
-  public final void reset() {
+  public void reset() {
     final int lgArrLongs =
         ThetaUtil.startingSubMultiple(lgNomLongs_ + 1, getResizeFactor().lg(), 
ThetaUtil.MIN_LG_ARR_LONGS);
     if (lgArrLongs == lgArrLongs_) {
@@ -342,13 +341,10 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
         //Decrement theta, make dirty, don't bother check size, already 
not-empty.
         thetaLong_ = (long) (thetaLong_ * alpha_);
         dirty_ = true; //now may have dirty values
-      }
-      else {
-        //inserts (not entries!) <= k. It may not be at tgt size.
-        //Check size, don't decrement theta. cnt already ++, empty_ already 
false;
-        if (isOutOfSpace(curCount_)) {
-          resizeClean(); //not dirty, not at tgt size.
-        }
+      } else //inserts (not entries!) <= k. It may not be at tgt size.
+      //Check size, don't decrement theta. count already ++, empty_ already 
false;
+      if (isOutOfSpace(curCount_)) {
+        resizeClean(); //not dirty, not at tgt size.
       }
     }
     else { //r > 0: sketch mode and not dirty (e.g., after a rebuild).
@@ -373,7 +369,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
    * @param hash must not be 0. If not a duplicate, it will be inserted into 
the hash array
    * @return <a 
href="{@docRoot}/resources/dictionary.html#updateReturnState">See Update Return 
State</a>
    */
-  final UpdateReturnState enhancedHashInsert(final long[] hashTable, final 
long hash) {
+  UpdateReturnState enhancedHashInsert(final long[] hashTable, final long 
hash) {
     final int arrayMask = (1 << lgArrLongs_) - 1; // arrayLongs -1
     // make odd and independent of curProbe:
     final int stride = (2 * (int) ((hash >>> lgArrLongs_) & STRIDE_MASK)) + 1;
@@ -440,7 +436,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
   //At tgt size or greater
   //Checks for rare lockup condition
   // Used by hashUpdate(), rebuild()
-  private final void rebuildDirty() {
+  private void rebuildDirty() {
     final int curCountBefore = curCount_;
     forceRebuildDirtyCache(); //changes curCount_ only
     if (curCountBefore == curCount_) {
@@ -452,7 +448,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
   //curCount > hashTableThreshold
   //Checks for rare lockup condition
   // Used by hashUpdate()
-  private final void resizeClean() {
+  private void resizeClean() {
     //must resize, but are we at tgt size?
     final int lgTgtLongs = lgNomLongs_ + 1;
     if (lgTgtLongs > lgArrLongs_) {
@@ -470,7 +466,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
 
   //Force resize. Changes lgArrLongs_ only. Theta doesn't change, count 
doesn't change.
   // Used by rebuildDirty(), resizeClean()
-  private final void forceResizeCleanCache(final int lgResizeFactor) {
+  private void forceResizeCleanCache(final int lgResizeFactor) {
     assert (!dirty_); // Should never be dirty before a resize.
     lgArrLongs_ += lgResizeFactor; // new tgt size
     final long[] tgtArr = new long[1 << lgArrLongs_];
@@ -483,7 +479,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
 
   //Cache stays the same size. Must be dirty. Theta doesn't change, count will 
change.
   // Used by rebuildDirtyAtTgtSize()
-  private final void forceRebuildDirtyCache() {
+  private void forceRebuildDirtyCache() {
     final long[] tgtArr = new long[1 << lgArrLongs_];
     curCount_ = HashOperations.hashArrayInsert(cache_, tgtArr, lgArrLongs_, 
thetaLong_);
     cache_ = tgtArr;
@@ -515,7 +511,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
    * @return the variance.
    */
   // @formatter:on
-  private static final double getVariance(final double k, final double p, 
final double alpha,
+  private static double getVariance(final double k, final double p, final 
double alpha,
       final double theta, final int count) {
     final double kPlus1 = k + 1.0;
     final double y = 1.0 / p;
@@ -551,7 +547,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
    * @param p <a href="{@docRoot}/resources/dictionary.html#p">See Sampling 
Probability, <i>p</i></a>.
    * @return R.
    */
-  private static final int getR(final double theta, final double alpha, final 
double p) {
+  private static int getR(final double theta, final double alpha, final double 
p) {
     final double split1 = (p * (alpha + 1.0)) / 2.0;
     if (theta > split1) { return 0; }
     if (theta > (alpha * split1)) { return 1; }
@@ -565,7 +561,7 @@ final class HeapAlphaSketch extends HeapUpdateSketch {
    * @param lgArrLongs <a 
href="{@docRoot}/resources/dictionary.html#lgArrLongs">See lgArrLongs</a>.
    * @return the hash table threshold
    */
-  private static final int setHashTableThreshold(final int lgNomLongs, final 
int lgArrLongs) {
+  private static int setHashTableThreshold(final int lgNomLongs, final int 
lgArrLongs) {
     final double fraction = (lgArrLongs <= lgNomLongs) ? 
ThetaUtil.RESIZE_THRESHOLD : ThetaUtil.REBUILD_THRESHOLD;
     return (int) Math.floor(fraction * (1 << lgArrLongs));
   }
diff --git 
a/src/main/java/org/apache/datasketches/theta/HeapQuickSelectSketch.java 
b/src/main/java/org/apache/datasketches/theta/HeapQuickSelectSketch.java
index 46e469004..5d8af6bfb 100644
--- a/src/main/java/org/apache/datasketches/theta/HeapQuickSelectSketch.java
+++ b/src/main/java/org/apache/datasketches/theta/HeapQuickSelectSketch.java
@@ -96,7 +96,7 @@ class HeapQuickSelectSketch extends HeapUpdateSketch {
     hashTableThreshold_ = getHashTableThreshold(lgNomLongs, lgArrLongs_);
     curCount_ = 0;
     thetaLong_ = (long)(p * LONG_MAX_VALUE_AS_DOUBLE);
-    empty_ = true; //other flags: bigEndian = readOnly = compact = ordered = 
false;
+    empty_ = true; //other flags: reserved = readOnly = compact = ordered = 
false;
     cache_ = new long[1 << lgArrLongs_];
   }
 
diff --git a/src/main/java/org/apache/datasketches/theta/IntersectionImpl.java 
b/src/main/java/org/apache/datasketches/theta/IntersectionImpl.java
index 6db8f6da1..ebb4a6215 100644
--- a/src/main/java/org/apache/datasketches/theta/IntersectionImpl.java
+++ b/src/main/java/org/apache/datasketches/theta/IntersectionImpl.java
@@ -154,7 +154,7 @@ final class IntersectionImpl extends Intersection {
     insertFamilyID(dstSeg, Family.INTERSECTION.getID());
     //lgNomLongs not used by Intersection
     //lgArrLongs set by hardReset
-    //flags are already 0: bigEndian = readOnly = compact = ordered = empty = 
false;
+    //flags are already 0: reserved = readOnly = compact = ordered = empty = 
false;
     //seedHash loaded and checked in IntersectionImpl constructor
     //Pre1
     //CurCount set by hardReset
diff --git a/src/main/java/org/apache/datasketches/theta/PreambleUtil.java 
b/src/main/java/org/apache/datasketches/theta/PreambleUtil.java
index ed368bd8b..26e263852 100644
--- a/src/main/java/org/apache/datasketches/theta/PreambleUtil.java
+++ b/src/main/java/org/apache/datasketches/theta/PreambleUtil.java
@@ -28,7 +28,6 @@ import static org.apache.datasketches.common.Util.LS;
 import static org.apache.datasketches.common.Util.zeroPad;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 
 import org.apache.datasketches.common.Family;
 import org.apache.datasketches.common.ResizeFactor;
@@ -175,7 +174,7 @@ final class PreambleUtil {
   static final int UNION_THETA_LONG           = 24; //8-byte aligned, only 
used by Union
 
   // flag bit masks
-  static final int BIG_ENDIAN_FLAG_MASK = 1; //SerVer 1, 2, 3
+  static final int RESERVED_FLAG_MASK   = 1; //SerVer 1, 2, 3. Now Reserved, 
no longer used.
   static final int READ_ONLY_FLAG_MASK  = 2; //Set but not read. Reserved. 
SerVer 1, 2, 3
   static final int EMPTY_FLAG_MASK      = 4; //SerVer 2, 3
   static final int COMPACT_FLAG_MASK    = 8; //SerVer 2 was 
NO_REBUILD_FLAG_MASK, 3
@@ -197,9 +196,6 @@ final class PreambleUtil {
   static final int NUM_ENTRIES_BYTES_BYTE_V4 = 4; // number of bytes used for 
the number of entries
   static final int THETA_LONG_V4             = 8; //8-byte aligned
 
-  static final boolean NATIVE_ORDER_IS_BIG_ENDIAN  =
-      (ByteOrder.nativeOrder() == ByteOrder.BIG_ENDIAN);
-
   /**
    * Computes the number of bytes required for an updatable sketch using a 
hash-table cache.
    * This does not apply for compact sketches.
@@ -207,7 +203,7 @@ final class PreambleUtil {
    * @param preambleLongs current preamble size
    * @return the size in bytes
    */
-  static final int getSegBytes(final int lgArrLongs, final int preambleLongs) {
+  static int getSegBytes(final int lgArrLongs, final int preambleLongs) {
     return (8 << lgArrLongs) + (preambleLongs << 3);
   }
 
@@ -248,8 +244,6 @@ final class PreambleUtil {
     final int flags = extractFlags(seg);
     final String flagsStr = (flags) + ", 0x" + (Integer.toHexString(flags)) + 
", "
         + zeroPad(Integer.toBinaryString(flags), 8);
-    final String nativeOrder = ByteOrder.nativeOrder().toString();
-    final boolean bigEndian = (flags & BIG_ENDIAN_FLAG_MASK) > 0;
     final boolean readOnly = (flags & READ_ONLY_FLAG_MASK) > 0;
     final boolean empty = (flags & EMPTY_FLAG_MASK) > 0;
     final boolean compact = (flags & COMPACT_FLAG_MASK) > 0;
@@ -290,7 +284,6 @@ final class PreambleUtil {
     final StringBuilder sb = new StringBuilder();
     sb.append(LS);
     sb.append("### SKETCH PREAMBLE SUMMARY:").append(LS);
-    sb.append("Native Byte Order             : 
").append(nativeOrder).append(LS);
     sb.append("Byte  0: Preamble Longs       : ").append(preLongs).append(LS);
     sb.append("Byte  0: ResizeFactor         : ").append(rfId + ", " + 
rf.toString()).append(LS);
     sb.append("Byte  1: Serialization Version: ").append(serVer).append(LS);
@@ -299,7 +292,7 @@ final class PreambleUtil {
     sb.append("Byte  4: LgArrLongs           : 
").append(lgArrLongs).append(LS);
     sb.append("Byte  5: Flags Field          : ").append(flagsStr).append(LS);
     sb.append("  Bit Flag Name               : State:").append(LS);
-    sb.append("    0 BIG_ENDIAN_STORAGE      : ").append(bigEndian).append(LS);
+    sb.append("    0 RESERVED                : ").append(LS);
     sb.append("    1 READ_ONLY               : ").append(readOnly).append(LS);
     sb.append("    2 EMPTY                   : ").append(empty).append(LS);
     sb.append("    3 COMPACT                 : ").append(compact).append(LS);
@@ -514,7 +507,7 @@ final class PreambleUtil {
     return preLongs;
   }
 
-  static final short checkSegmentSeedHash(final MemorySegment seg, final long 
seed) {
+  static short checkSegmentSeedHash(final MemorySegment seg, final long seed) {
     final short seedHashSeg = (short) extractSeedHash(seg);
     Util.checkSeedHashes(seedHashSeg, Util.computeSeedHash(seed)); //throws if 
bad seedHash
     return seedHashSeg;
diff --git a/src/main/java/org/apache/datasketches/theta/SingleItemSketch.java 
b/src/main/java/org/apache/datasketches/theta/SingleItemSketch.java
index c6ed7ec52..abf8df391 100644
--- a/src/main/java/org/apache/datasketches/theta/SingleItemSketch.java
+++ b/src/main/java/org/apache/datasketches/theta/SingleItemSketch.java
@@ -384,14 +384,14 @@ final class SingleItemSketch extends CompactSketch {
     return (short) (pre0_ >>> 48);
   }
 
-  static final boolean otherCheckForSingleItem(final MemorySegment seg) {
+  static boolean otherCheckForSingleItem(final MemorySegment seg) {
     return otherCheckForSingleItem(extractPreLongs(seg), extractSerVer(seg),
         extractFamilyID(seg), extractFlags(seg) );
   }
 
-  static final boolean otherCheckForSingleItem(final int preLongs, final int 
serVer,
+  static boolean otherCheckForSingleItem(final int preLongs, final int serVer,
       final int famId, final int flags) {
-    // Flags byte: SI=X, Ordered=T, Compact=T, Empty=F, ReadOnly=T, 
BigEndian=F = X11010 = 0x1A.
+    // Flags byte: SI=X, Ordered=T, Compact=T, Empty=F, ReadOnly=T, Reserved=F 
= X11010 = 0x1A.
     // Flags mask will be 0x1F.
     // SingleItem flag may not be set due to a historical bug, so we can't 
depend on it for now.
     // However, if the above flags are correct, preLongs == 1, SerVer >= 3, 
FamilyID == 3,
diff --git a/src/main/java/org/apache/datasketches/theta/UpdateSketch.java 
b/src/main/java/org/apache/datasketches/theta/UpdateSketch.java
index d60ab0037..7db1988e9 100644
--- a/src/main/java/org/apache/datasketches/theta/UpdateSketch.java
+++ b/src/main/java/org/apache/datasketches/theta/UpdateSketch.java
@@ -25,7 +25,6 @@ import static 
org.apache.datasketches.common.Util.LONG_MAX_VALUE_AS_DOUBLE;
 import static org.apache.datasketches.common.Util.checkBounds;
 import static org.apache.datasketches.hash.MurmurHash3.hash;
 import static 
org.apache.datasketches.theta.CompactOperations.componentsToCompact;
-import static org.apache.datasketches.theta.PreambleUtil.BIG_ENDIAN_FLAG_MASK;
 import static org.apache.datasketches.theta.PreambleUtil.COMPACT_FLAG_MASK;
 import static org.apache.datasketches.theta.PreambleUtil.FAMILY_BYTE;
 import static org.apache.datasketches.theta.PreambleUtil.ORDERED_FLAG_MASK;
@@ -433,11 +432,10 @@ public abstract class UpdateSketch extends Sketch {
 
     //Check flags
     final int flags = extractFlags(srcSeg);                             //byte 
5
-    final int flagsMask =
-        ORDERED_FLAG_MASK | COMPACT_FLAG_MASK | READ_ONLY_FLAG_MASK | 
BIG_ENDIAN_FLAG_MASK;
-    if ((flags & flagsMask) > 0) {
+    final int badFlagsMask = ORDERED_FLAG_MASK | COMPACT_FLAG_MASK | 
READ_ONLY_FLAG_MASK;
+    if ((flags & badFlagsMask) > 0) {
       throw new SketchesArgumentException(
-        "Possible corruption: Input srcSeg cannot be: big-endian, compact, 
ordered, nor read-only");
+        "Possible corruption: Input srcSeg cannot be: compact, ordered, nor 
read-only");
     }
 
     //Check seed hashes
diff --git a/src/main/java/org/apache/datasketches/tuple/CompactSketch.java 
b/src/main/java/org/apache/datasketches/tuple/CompactSketch.java
index 20eac81fb..b05fd9c15 100644
--- a/src/main/java/org/apache/datasketches/tuple/CompactSketch.java
+++ b/src/main/java/org/apache/datasketches/tuple/CompactSketch.java
@@ -26,7 +26,6 @@ import static 
org.apache.datasketches.thetacommon.HashOperations.count;
 
 import java.lang.foreign.MemorySegment;
 import java.lang.reflect.Array;
-import java.nio.ByteOrder;
 
 import org.apache.datasketches.common.ByteArrayUtil;
 import org.apache.datasketches.common.Family;
@@ -52,7 +51,7 @@ public final class CompactSketch<S extends Summary> extends 
Sketch<S> {
 
   private enum FlagsLegacy { IS_BIG_ENDIAN, IS_EMPTY, HAS_ENTRIES, 
IS_THETA_INCLUDED }
 
-  private enum Flags { IS_BIG_ENDIAN, IS_READ_ONLY, IS_EMPTY, IS_COMPACT, 
IS_ORDERED }
+  private enum Flags { IS_RESERVED, IS_READ_ONLY, IS_EMPTY, IS_COMPACT, 
IS_ORDERED }
 
   /**
    * Create a CompactSketch from correct components
@@ -90,19 +89,15 @@ public final class CompactSketch<S extends Summary> extends 
Sketch<S> {
       .validateType(seg.get(JAVA_BYTE, offset++), 
SerializerDeserializer.SketchType.CompactSketch);
     if (version <= serialVersionUIDLegacy) { // legacy serial format
       final byte flags = seg.get(JAVA_BYTE, offset++);
-      final boolean isBigEndian = (flags & 1 << 
FlagsLegacy.IS_BIG_ENDIAN.ordinal()) > 0;
-      if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-        throw new SketchesArgumentException("Byte order mismatch");
-      }
-      empty_ = (flags & 1 << FlagsLegacy.IS_EMPTY.ordinal()) > 0;
-      final boolean isThetaIncluded = (flags & 1 << 
FlagsLegacy.IS_THETA_INCLUDED.ordinal()) > 0;
+      empty_ = (flags & (1 << FlagsLegacy.IS_EMPTY.ordinal())) > 0;
+      final boolean isThetaIncluded = (flags & (1 << 
FlagsLegacy.IS_THETA_INCLUDED.ordinal())) > 0;
       if (isThetaIncluded) {
         thetaLong_ = seg.get(JAVA_LONG_UNALIGNED, offset);
         offset += Long.BYTES;
       } else {
         thetaLong_ = Long.MAX_VALUE;
       }
-      final boolean hasEntries = (flags & 1 << 
FlagsLegacy.HAS_ENTRIES.ordinal()) > 0;
+      final boolean hasEntries = (flags & (1 << 
FlagsLegacy.HAS_ENTRIES.ordinal())) > 0;
       if (hasEntries) {
         int classNameLength = 0;
         if (version == serialVersionWithSummaryClassNameUID) {
@@ -130,7 +125,7 @@ public final class CompactSketch<S extends Summary> extends 
Sketch<S> {
       offset++; //skip unused byte
       final byte flags = seg.get(JAVA_BYTE, offset++);
       offset += 2; //skip 2 unused bytes
-      empty_ = (flags & 1 << Flags.IS_EMPTY.ordinal()) > 0;
+      empty_ = (flags & (1 << Flags.IS_EMPTY.ordinal())) > 0;
       thetaLong_ = Long.MAX_VALUE;
       int count = 0;
       if (!empty_) {
@@ -201,7 +196,7 @@ public final class CompactSketch<S extends Summary> extends 
Sketch<S> {
   @Override
   public byte[] toByteArray() {
   final int count = getRetainedEntries();
-    final boolean isSingleItem = count == 1 && !isEstimationMode();
+    final boolean isSingleItem = (count == 1) && !isEstimationMode();
     final int preambleLongs = isEmpty() || isSingleItem ? 1 : 
isEstimationMode() ? 3 : 2;
 
     int summariesSizeBytes = 0;
@@ -213,7 +208,7 @@ public final class CompactSketch<S extends Summary> extends 
Sketch<S> {
       }
     }
 
-    final int sizeBytes = Long.BYTES * preambleLongs + Long.BYTES * count + 
summariesSizeBytes;
+    final int sizeBytes = (Long.BYTES * preambleLongs) + (Long.BYTES * count) 
+ summariesSizeBytes;
     final byte[] bytes = new byte[sizeBytes];
     int offset = 0;
     bytes[offset++] = (byte) preambleLongs;
diff --git a/src/main/java/org/apache/datasketches/tuple/QuickSelectSketch.java 
b/src/main/java/org/apache/datasketches/tuple/QuickSelectSketch.java
index 708486df1..c264366a4 100644
--- a/src/main/java/org/apache/datasketches/tuple/QuickSelectSketch.java
+++ b/src/main/java/org/apache/datasketches/tuple/QuickSelectSketch.java
@@ -30,7 +30,6 @@ import static 
org.apache.datasketches.thetacommon.HashOperations.count;
 
 import java.lang.foreign.MemorySegment;
 import java.lang.reflect.Array;
-import java.nio.ByteOrder;
 import java.util.Objects;
 
 import org.apache.datasketches.common.ByteArrayUtil;
@@ -49,7 +48,7 @@ import org.apache.datasketches.thetacommon.ThetaUtil;
 class QuickSelectSketch<S extends Summary> extends Sketch<S> {
   private static final byte serialVersionUID = 2;
 
-  private enum Flags { IS_BIG_ENDIAN, IS_IN_SAMPLING_MODE, IS_EMPTY, 
HAS_ENTRIES, IS_THETA_INCLUDED }
+  private enum Flags { IS_RESERVED, IS_IN_SAMPLING_MODE, IS_EMPTY, 
HAS_ENTRIES, IS_THETA_INCLUDED }
 
   private static final int DEFAULT_LG_RESIZE_FACTOR = ResizeFactor.X8.lg();
   private final int nomEntries_;
@@ -245,22 +244,18 @@ class QuickSelectSketch<S extends Summary> extends 
Sketch<S> {
       SerializerDeserializer.validateType(seg.get(JAVA_BYTE, offset++), //byte 
3
           SerializerDeserializer.SketchType.QuickSelectSketch);
       final byte flags = seg.get(JAVA_BYTE, offset++); //byte 4
-      final boolean isBigEndian = (flags & 1 << Flags.IS_BIG_ENDIAN.ordinal()) 
> 0;
-      if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-        throw new SketchesArgumentException("Endian byte order mismatch");
-      }
       myNomEntries = 1 << seg.get(JAVA_BYTE, offset++); //byte 5
       myLgCurrentCapacity = seg.get(JAVA_BYTE, offset++); //byte 6
       myLgResizeFactor = seg.get(JAVA_BYTE, offset++); //byte 7
 
       checkBounds(0, preambleLongs * 8L, seg.byteSize());
-      final boolean isInSamplingMode = (flags & 1 << 
Flags.IS_IN_SAMPLING_MODE.ordinal()) > 0;
+      final boolean isInSamplingMode = (flags & (1 << 
Flags.IS_IN_SAMPLING_MODE.ordinal())) > 0;
       mySamplingProbability = isInSamplingMode ? seg.get(JAVA_FLOAT_UNALIGNED, 
offset) : 1f; //bytes 8 - 11
       if (isInSamplingMode) {
         offset += Float.BYTES;
       }
 
-      final boolean isThetaIncluded = (flags & 1 << 
Flags.IS_THETA_INCLUDED.ordinal()) > 0;
+      final boolean isThetaIncluded = (flags & (1 << 
Flags.IS_THETA_INCLUDED.ordinal())) > 0;
       if (isThetaIncluded) {
         myThetaLong = seg.get(JAVA_LONG_UNALIGNED, offset);
         offset += Long.BYTES;
@@ -292,7 +287,7 @@ class QuickSelectSketch<S extends Summary> extends 
Sketch<S> {
         myRetEntries++;
         myEmpty = false;
       }
-      myEmpty = (flags & 1 << Flags.IS_EMPTY.ordinal()) > 0;
+      myEmpty = (flags & (1 << Flags.IS_EMPTY.ordinal())) > 0;
       myRebuildThreshold = setRebuildThreshold(myHashTable, myNomEntries);
       return myThetaLong;
     }
@@ -460,17 +455,15 @@ class QuickSelectSketch<S extends Summary> extends 
Sketch<S> {
     if (retEntries_ > 0) {
       sizeBytes += Integer.BYTES; // count
     }
-    sizeBytes += Long.BYTES * retEntries_ + summariesBytesLength;
+    sizeBytes += (Long.BYTES * retEntries_) + summariesBytesLength;
     final byte[] bytes = new byte[sizeBytes];
     int offset = 0;
     bytes[offset++] = PREAMBLE_LONGS;
     bytes[offset++] = serialVersionUID;
     bytes[offset++] = (byte) Family.TUPLE.getID();
     bytes[offset++] = (byte) 
SerializerDeserializer.SketchType.QuickSelectSketch.ordinal();
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     bytes[offset++] = (byte) (
-      (isBigEndian ? 1 << Flags.IS_BIG_ENDIAN.ordinal() : 0)
-      | (isInSamplingMode() ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 0)
+        (isInSamplingMode() ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 0)
       | (empty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
       | (retEntries_ > 0 ? 1 << Flags.HAS_ENTRIES.ordinal() : 0)
       | (isThetaIncluded ? 1 << Flags.IS_THETA_INCLUDED.ordinal() : 0)
@@ -512,7 +505,7 @@ class QuickSelectSketch<S extends Summary> extends 
Sketch<S> {
   @SuppressWarnings("unchecked")
   void merge(final long hash, final S summary, final SummarySetOperations<S> 
summarySetOps) {
     empty_ = false;
-    if (hash > 0 && hash < thetaLong_) {
+    if ((hash > 0) && (hash < thetaLong_)) {
       final int index = findOrInsert(hash);
       if (index < 0) {
         insertSummary(~index, (S)summary.copy()); //did not find, so insert
@@ -590,7 +583,7 @@ class QuickSelectSketch<S extends Summary> extends 
Sketch<S> {
     lgCurrentCapacity_ = Integer.numberOfTrailingZeros(newSize);
     retEntries_ = 0;
     for (int i = 0; i < oldHashTable.length; i++) {
-      if (oldSummaryTable[i] != null && oldHashTable[i] < thetaLong_) {
+      if ((oldSummaryTable[i] != null) && (oldHashTable[i] < thetaLong_)) {
         insert(oldHashTable[i], oldSummaryTable[i]);
       }
     }
diff --git 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/ArrayOfDoublesSketch.java
 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/ArrayOfDoublesSketch.java
index c901f81fd..b86f5f624 100644
--- 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/ArrayOfDoublesSketch.java
+++ 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/ArrayOfDoublesSketch.java
@@ -39,7 +39,7 @@ public abstract class ArrayOfDoublesSketch {
   // So a sketch can be non-empty, and have no entries.
   // For example, as a result of a sampling, when some data was presented to 
the sketch, but no
   //  entries were retained.
-  static enum Flags { IS_BIG_ENDIAN, IS_IN_SAMPLING_MODE, IS_EMPTY, 
HAS_ENTRIES }
+  enum Flags { IS_RESERVED, IS_IN_SAMPLING_MODE, IS_EMPTY, HAS_ENTRIES }
 
   static final int SIZE_OF_KEY_BYTES = Long.BYTES;
   static final int SIZE_OF_VALUE_BYTES = Double.BYTES;
diff --git 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesCompactSketch.java
 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesCompactSketch.java
index 083b5e06a..44bb4360f 100644
--- 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesCompactSketch.java
+++ 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesCompactSketch.java
@@ -26,7 +26,6 @@ import static 
java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
 import static java.lang.foreign.ValueLayout.JAVA_SHORT_UNALIGNED;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 
 import org.apache.datasketches.common.Family;
 import org.apache.datasketches.common.SketchesArgumentException;
@@ -43,7 +42,7 @@ import org.apache.datasketches.tuple.SerializerDeserializer;
 final class DirectArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketch {
 
   // this value exists only on heap, never serialized
-  private MemorySegment seg_;
+  private final MemorySegment seg_;
 
   /**
    * Converts the given UpdatableArrayOfDoublesSketch to this compact form.
@@ -72,12 +71,10 @@ final class DirectArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketc
     dstSeg.set(JAVA_BYTE, FAMILY_ID_BYTE, (byte) Family.TUPLE.getID());
     dstSeg.set(JAVA_BYTE, SKETCH_TYPE_BYTE, (byte)
         
SerializerDeserializer.SketchType.ArrayOfDoublesCompactSketch.ordinal());
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     isEmpty_ = sketch.isEmpty();
     final int count = sketch.getRetainedEntries();
     dstSeg.set(JAVA_BYTE, FLAGS_BYTE, (byte) (
-      (isBigEndian ? 1 << Flags.IS_BIG_ENDIAN.ordinal() : 0)
-      | (isEmpty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
+        (isEmpty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
       | (count > 0 ? 1 << Flags.HAS_ENTRIES.ordinal() : 0)
     ));
     dstSeg.set(JAVA_BYTE, NUM_VALUES_BYTE, (byte) numValues_);
@@ -115,12 +112,10 @@ final class DirectArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketc
     dstSeg.set(JAVA_BYTE, FAMILY_ID_BYTE, (byte) Family.TUPLE.getID());
     dstSeg.set(JAVA_BYTE, SKETCH_TYPE_BYTE, (byte)
         
SerializerDeserializer.SketchType.ArrayOfDoublesCompactSketch.ordinal());
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     isEmpty_ = isEmpty;
     final int count = keys.length;
     dstSeg.set(JAVA_BYTE, FLAGS_BYTE, (byte) (
-      (isBigEndian ? 1 << Flags.IS_BIG_ENDIAN.ordinal() : 0)
-      | (isEmpty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
+        (isEmpty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
       | (count > 0 ? 1 << Flags.HAS_ENTRIES.ordinal() : 0)
     ));
     dstSeg.set(JAVA_BYTE, NUM_VALUES_BYTE, (byte) numValues_);
@@ -150,11 +145,6 @@ final class DirectArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketc
       throw new SketchesArgumentException("Serial version mismatch. Expected: 
" + serialVersionUID
           + ", actual: " + version);
     }
-    final boolean isBigEndian =
-        (seg.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_BIG_ENDIAN.ordinal())) != 0;
-    if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-      throw new SketchesArgumentException("Byte order mismatch");
-    }
 
     isEmpty_ = (seg_.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_EMPTY.ordinal())) != 0;
     thetaLong_ = seg_.get(JAVA_LONG_UNALIGNED, THETA_LONG);
@@ -177,11 +167,6 @@ final class DirectArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketc
       throw new SketchesArgumentException("Serial version mismatch. Expected: 
" + serialVersionUID
           + ", actual: " + version);
     }
-    final boolean isBigEndian =
-        (seg.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_BIG_ENDIAN.ordinal())) != 0;
-    if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-      throw new SketchesArgumentException("Byte order mismatch");
-    }
     Util.checkSeedHashes(seg.get(JAVA_SHORT_UNALIGNED, SEED_HASH_SHORT), 
Util.computeSeedHash(seed));
     isEmpty_ = (seg_.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_EMPTY.ordinal())) != 0;
     thetaLong_ = seg.get(JAVA_LONG_UNALIGNED, THETA_LONG);
diff --git 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesQuickSelectSketch.java
 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesQuickSelectSketch.java
index 0bd6ee65f..b34f08f5c 100644
--- 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesQuickSelectSketch.java
+++ 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/DirectArrayOfDoublesQuickSelectSketch.java
@@ -32,7 +32,6 @@ import static 
org.apache.datasketches.common.Util.computeSeedHash;
 import static org.apache.datasketches.common.Util.setBits;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Arrays;
 
 import org.apache.datasketches.common.Family;
@@ -107,10 +106,8 @@ class DirectArrayOfDoublesQuickSelectSketch extends 
ArrayOfDoublesQuickSelectSke
     seg_.set(JAVA_BYTE, FAMILY_ID_BYTE, (byte) Family.TUPLE.getID());
     seg_.set(JAVA_BYTE, SKETCH_TYPE_BYTE, (byte)
         
SerializerDeserializer.SketchType.ArrayOfDoublesQuickSelectSketch.ordinal());
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     seg_.set(JAVA_BYTE, FLAGS_BYTE, (byte) (
-      (isBigEndian ? 1 << Flags.IS_BIG_ENDIAN.ordinal() : 0)
-      | (samplingProbability < 1f ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 
0)
+      (samplingProbability < 1f ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 0)
       | (1 << Flags.IS_EMPTY.ordinal())
     ));
     seg_.set(JAVA_BYTE, NUM_VALUES_BYTE, (byte) numValues);
@@ -147,7 +144,7 @@ class DirectArrayOfDoublesQuickSelectSketch extends 
ArrayOfDoublesQuickSelectSke
   DirectArrayOfDoublesQuickSelectSketch(
       final MemorySegment seg,
       final long seed) {
-    this(checkSerVer_Endianness(seg), seg, seed);
+    this(checkSerVer(seg), seg, seed);
     //SpotBugs CT_CONSTRUCTOR_THROW is false positive.
     //this construction scheme is compliant with SEI CERT Oracle Coding 
Standard for Java / OBJ11-J
   }
@@ -173,17 +170,12 @@ class DirectArrayOfDoublesQuickSelectSketch extends 
ArrayOfDoublesQuickSelectSke
     setRebuildThreshold();
   }
 
-  private static final boolean checkSerVer_Endianness(final MemorySegment seg) 
{
+  private static final boolean checkSerVer(final MemorySegment seg) {
     final byte version = seg.get(JAVA_BYTE, SERIAL_VERSION_BYTE);
     if (version != serialVersionUID) {
       throw new SketchesArgumentException("Serial version mismatch. Expected: 
" + serialVersionUID
           + ", actual: " + version);
     }
-    final boolean isBigEndian =
-        (seg.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_BIG_ENDIAN.ordinal())) != 0;
-    if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-      throw new SketchesArgumentException("Byte order mismatch");
-    }
     return true;
   }
 
diff --git 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesCompactSketch.java
 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesCompactSketch.java
index b8f6fd863..f0de95ef4 100644
--- 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesCompactSketch.java
+++ 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesCompactSketch.java
@@ -26,7 +26,6 @@ import static 
java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
 import static java.lang.foreign.ValueLayout.JAVA_SHORT_UNALIGNED;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Arrays;
 
 import org.apache.datasketches.common.Family;
@@ -127,11 +126,6 @@ final class HeapArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketch
       throw new SketchesArgumentException(
           "Serial version mismatch. Expected: " + serialVersionUID + ", 
actual: " + version);
     }
-    final boolean isBigEndian =
-        (seg.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_BIG_ENDIAN.ordinal())) != 0;
-    if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-      throw new SketchesArgumentException("Byte order mismatch");
-    }
     Util.checkSeedHashes(seedHash_, Util.computeSeedHash(seed));
     isEmpty_ = (seg.get(JAVA_BYTE, FLAGS_BYTE) & (1 << 
Flags.IS_EMPTY.ordinal())) != 0;
     thetaLong_ = seg.get(JAVA_LONG_UNALIGNED, THETA_LONG);
@@ -152,7 +146,7 @@ final class HeapArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketch
       return new
           HeapArrayOfDoublesCompactSketch(keys_.clone(), values_.clone(), 
thetaLong_, isEmpty_, numValues_, seedHash_);
     } else {
-      final byte[] byteArr = this.toByteArray();
+      final byte[] byteArr = toByteArray();
       MemorySegment.copy(byteArr, 0, dstSeg, JAVA_BYTE, 0, byteArr.length);
       return new DirectArrayOfDoublesCompactSketch(dstSeg);
     }
@@ -173,10 +167,8 @@ final class HeapArrayOfDoublesCompactSketch extends 
ArrayOfDoublesCompactSketch
     seg.set(JAVA_BYTE, SERIAL_VERSION_BYTE, serialVersionUID);
     seg.set(JAVA_BYTE, FAMILY_ID_BYTE, (byte) Family.TUPLE.getID());
     seg.set(JAVA_BYTE, SKETCH_TYPE_BYTE, (byte) 
SerializerDeserializer.SketchType.ArrayOfDoublesCompactSketch.ordinal());
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     seg.set(JAVA_BYTE, FLAGS_BYTE, (byte) (
-      ((isBigEndian ? 1 : 0) << Flags.IS_BIG_ENDIAN.ordinal())
-      | ((isEmpty() ? 1 : 0) << Flags.IS_EMPTY.ordinal())
+        ((isEmpty() ? 1 : 0) << Flags.IS_EMPTY.ordinal())
       | ((count > 0 ? 1 : 0) << Flags.HAS_ENTRIES.ordinal())
     ));
     seg.set(JAVA_BYTE, NUM_VALUES_BYTE, (byte) numValues_);
diff --git 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesQuickSelectSketch.java
 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesQuickSelectSketch.java
index beab988d3..9891c9809 100644
--- 
a/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesQuickSelectSketch.java
+++ 
b/src/main/java/org/apache/datasketches/tuple/arrayofdoubles/HeapArrayOfDoublesQuickSelectSketch.java
@@ -31,7 +31,6 @@ import static 
org.apache.datasketches.common.Util.computeSeedHash;
 import static org.apache.datasketches.common.Util.exactLog2OfLong;
 
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Arrays;
 
 import org.apache.datasketches.common.Family;
@@ -101,10 +100,6 @@ final class HeapArrayOfDoublesQuickSelectSketch extends 
ArrayOfDoublesQuickSelec
         + serialVersionUID + ", actual: " + version);
     }
     final byte flags = seg.get(JAVA_BYTE, FLAGS_BYTE);
-    final boolean isBigEndian = (flags & (1 << Flags.IS_BIG_ENDIAN.ordinal())) 
> 0;
-    if (isBigEndian ^ ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
-      throw new SketchesArgumentException("Byte order mismatch");
-    }
     checkSeedHashes(seg.get(JAVA_SHORT_UNALIGNED, SEED_HASH_SHORT), 
computeSeedHash(seed));
     isEmpty_ = (flags & (1 << Flags.IS_EMPTY.ordinal())) > 0;
     lgNomEntries_ = seg.get(JAVA_BYTE, LG_NOM_ENTRIES_BYTE);
@@ -238,10 +233,8 @@ final class HeapArrayOfDoublesQuickSelectSketch extends 
ArrayOfDoublesQuickSelec
     seg.set(JAVA_BYTE, FAMILY_ID_BYTE, (byte) Family.TUPLE.getID());
     seg.set(JAVA_BYTE, SKETCH_TYPE_BYTE,
         (byte) 
SerializerDeserializer.SketchType.ArrayOfDoublesQuickSelectSketch.ordinal());
-    final boolean isBigEndian = 
ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN);
     seg.set(JAVA_BYTE, FLAGS_BYTE, (byte)(
-      (isBigEndian ? 1 << Flags.IS_BIG_ENDIAN.ordinal() : 0)
-      | (isInSamplingMode() ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 0)
+        (isInSamplingMode() ? 1 << Flags.IS_IN_SAMPLING_MODE.ordinal() : 0)
       | (isEmpty_ ? 1 << Flags.IS_EMPTY.ordinal() : 0)
       | (count_ > 0 ? 1 << Flags.HAS_ENTRIES.ordinal() : 0)
     ));
diff --git 
a/src/test/java/org/apache/datasketches/count/CountMinSketchTest.java 
b/src/test/java/org/apache/datasketches/count/CountMinSketchTest.java
index 26fb956be..bb0bef806 100644
--- a/src/test/java/org/apache/datasketches/count/CountMinSketchTest.java
+++ b/src/test/java/org/apache/datasketches/count/CountMinSketchTest.java
@@ -34,7 +34,6 @@ public class CountMinSketchTest {
   @Test
   public void createNewCountMinSketchTest() throws Exception {
     assertThrows(SketchesArgumentException.class, () -> new 
CountMinSketch((byte) 5, 1, 123));
-    //2^28 buckets and 4 hashes -> a long[] of 8GB! Set JVM -Xmx > 8g
     assertThrows(SketchesArgumentException.class, () -> new 
CountMinSketch((byte) 4, (1 << 28), 123));
     final byte numHashes = 3;
     final int numBuckets = 5;
@@ -204,7 +203,7 @@ public class CountMinSketchTest {
     final long seed = 123456;
     final CountMinSketch c = new CountMinSketch(numHashes, numBuckets, seed);
 
-    byte[] b = c.toByteArray();
+    final byte[] b = c.toByteArray();
     assertThrows(SketchesArgumentException.class, () -> 
CountMinSketch.deserialize(b, seed - 1));
 
     final CountMinSketch d = CountMinSketch.deserialize(b, seed);
@@ -226,10 +225,10 @@ public class CountMinSketchTest {
       c.update(i, 10*i*i);
     }
 
-    byte[] b = c.toByteArray();
+    final byte[] b = c.toByteArray();
 
     assertThrows(SketchesArgumentException.class, () -> 
CountMinSketch.deserialize(b, seed - 1));
-    CountMinSketch d = CountMinSketch.deserialize(b, seed);
+    final CountMinSketch d = CountMinSketch.deserialize(b, seed);
 
     assertEquals(d.getNumHashes_(), c.getNumHashes_());
     assertEquals(d.getNumBuckets_(), c.getNumBuckets_());
diff --git 
a/src/test/java/org/apache/datasketches/hash/MurmurHash3FFM21bTest.java 
b/src/test/java/org/apache/datasketches/hash/MurmurHash3FFM21bTest.java
index 2942c4a0e..867f4a126 100644
--- a/src/test/java/org/apache/datasketches/hash/MurmurHash3FFM21bTest.java
+++ b/src/test/java/org/apache/datasketches/hash/MurmurHash3FFM21bTest.java
@@ -26,9 +26,7 @@ import static org.testng.Assert.fail;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 
-import org.apache.datasketches.common.MemorySegmentRequest;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
diff --git 
a/src/test/java/org/apache/datasketches/kll/KllMemorySegmentRequestApp.java 
b/src/test/java/org/apache/datasketches/kll/KllMemorySegmentRequestApp.java
index b2386fd1c..7d875a7e6 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMemorySegmentRequestApp.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMemorySegmentRequestApp.java
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 package org.apache.datasketches.kll;
 
 import static org.apache.datasketches.kll.KllSketch.getMaxSerializedSizeBytes;
diff --git 
a/src/test/java/org/apache/datasketches/quantiles/ClassicQuantilesMemorySegmentRequestApp.java
 
b/src/test/java/org/apache/datasketches/quantiles/ClassicQuantilesMemorySegmentRequestApp.java
index 1537d9847..7556d2be9 100644
--- 
a/src/test/java/org/apache/datasketches/quantiles/ClassicQuantilesMemorySegmentRequestApp.java
+++ 
b/src/test/java/org/apache/datasketches/quantiles/ClassicQuantilesMemorySegmentRequestApp.java
@@ -1,3 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
 package org.apache.datasketches.quantiles;
 
 import static org.testng.Assert.assertEquals;
diff --git 
a/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java 
b/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
index faebc6aa4..f484b5864 100644
--- 
a/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
+++ 
b/src/test/java/org/apache/datasketches/theta/DirectQuickSelectSketchTest.java
@@ -23,7 +23,6 @@ import static java.lang.foreign.ValueLayout.JAVA_BYTE;
 import static java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
 import static org.apache.datasketches.common.Family.QUICKSELECT;
 import static org.apache.datasketches.common.Util.clear;
-import static org.apache.datasketches.theta.PreambleUtil.BIG_ENDIAN_FLAG_MASK;
 import static org.apache.datasketches.theta.PreambleUtil.COMPACT_FLAG_MASK;
 import static org.apache.datasketches.theta.PreambleUtil.FAMILY_BYTE;
 import static org.apache.datasketches.theta.PreambleUtil.FLAGS_BYTE;
@@ -43,7 +42,6 @@ import static org.testng.Assert.fail;
 
 import java.lang.foreign.Arena;
 import java.lang.foreign.MemorySegment;
-import java.nio.ByteOrder;
 import java.util.Arrays;
 
 import org.apache.datasketches.common.Family;
@@ -51,11 +49,6 @@ import org.apache.datasketches.common.ResizeFactor;
 import org.apache.datasketches.common.SketchesArgumentException;
 import org.apache.datasketches.common.SketchesReadOnlyException;
 import org.apache.datasketches.common.Util;
-import org.apache.datasketches.theta.CompactSketch;
-import org.apache.datasketches.theta.DirectQuickSelectSketch;
-import org.apache.datasketches.theta.Sketch;
-import org.apache.datasketches.theta.Sketches;
-import org.apache.datasketches.theta.UpdateSketch;
 import org.apache.datasketches.thetacommon.HashOperations;
 import org.testng.annotations.Test;
 
@@ -807,7 +800,7 @@ public class DirectQuickSelectSketchTest {
     }
     seg1.set(JAVA_LONG_UNALIGNED, THETA_LONG, Long.MAX_VALUE); //fix theta and
     seg1.set(JAVA_BYTE, LG_ARR_LONGS_BYTE, (byte) 11); //fix lgArrLongs
-    final byte badFlags = (byte) (BIG_ENDIAN_FLAG_MASK | COMPACT_FLAG_MASK | 
READ_ONLY_FLAG_MASK | ORDERED_FLAG_MASK);
+    final byte badFlags = (byte) (COMPACT_FLAG_MASK | READ_ONLY_FLAG_MASK | 
ORDERED_FLAG_MASK);
     seg1.set(JAVA_BYTE, FLAGS_BYTE, badFlags);
     try {
       usk2 = DirectQuickSelectSketch.writableWrap(seg1, 
Util.DEFAULT_UPDATE_SEED);
diff --git 
a/src/test/java/org/apache/datasketches/theta/ReadOnlyMemorySegmentTest.java 
b/src/test/java/org/apache/datasketches/theta/ReadOnlyMemorySegmentTest.java
index cc9672a4e..02e53d259 100644
--- a/src/test/java/org/apache/datasketches/theta/ReadOnlyMemorySegmentTest.java
+++ b/src/test/java/org/apache/datasketches/theta/ReadOnlyMemorySegmentTest.java
@@ -28,12 +28,6 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 
 import org.apache.datasketches.common.SketchesReadOnlyException;
-import org.apache.datasketches.theta.Intersection;
-import org.apache.datasketches.theta.SetOperation;
-import org.apache.datasketches.theta.Sketch;
-import org.apache.datasketches.theta.Sketches;
-import org.apache.datasketches.theta.Union;
-import org.apache.datasketches.theta.UpdateSketch;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
@@ -41,18 +35,18 @@ public class ReadOnlyMemorySegmentTest {
 
   @Test
   public void wrapAndTryUpdatingUpdateSketch() {
-    UpdateSketch updateSketch = UpdateSketch.builder().build();
+    final UpdateSketch updateSketch = UpdateSketch.builder().build();
     updateSketch.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(updateSketch.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    UpdateSketch sketch = (UpdateSketch) Sketch.wrap(seg);
+    final UpdateSketch sketch = (UpdateSketch) Sketch.wrap(seg);
     assertEquals(sketch.getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
 
     boolean thrown = false;
     try {
       sketch.update(2);
-    } catch (SketchesReadOnlyException e) {
+    } catch (final SketchesReadOnlyException e) {
       thrown = true;
     }
     Assert.assertTrue(thrown);
@@ -60,34 +54,34 @@ public class ReadOnlyMemorySegmentTest {
 
   @Test
   public void wrapCompactUnorderedSketch() {
-    UpdateSketch updateSketch = UpdateSketch.builder().build();
+    final UpdateSketch updateSketch = UpdateSketch.builder().build();
     updateSketch.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         ByteBuffer.wrap(updateSketch.compact(false, 
null).toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Sketch sketch = Sketch.wrap(seg);
+    final Sketch sketch = Sketch.wrap(seg);
     assertEquals(sketch.getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
   }
 
   @Test
   public void wrapCompactOrderedSketch() {
-    UpdateSketch updateSketch = UpdateSketch.builder().build();
+    final UpdateSketch updateSketch = UpdateSketch.builder().build();
     updateSketch.update(1);
-    MemorySegment seg = 
MemorySegment.ofBuffer(ByteBuffer.wrap(updateSketch.compact().toByteArray())
+    final MemorySegment seg = 
MemorySegment.ofBuffer(ByteBuffer.wrap(updateSketch.compact().toByteArray())
         .asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Sketch sketch = Sketch.wrap(seg);
+    final Sketch sketch = Sketch.wrap(seg);
     assertEquals(sketch.getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
   }
 
   @Test
   public void heapifyUpdateSketch() {
-    UpdateSketch us1 = UpdateSketch.builder().build();
+    final UpdateSketch us1 = UpdateSketch.builder().build();
     us1.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(us1.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
     // downcasting is not recommended, for testing only
-    UpdateSketch us2 = (UpdateSketch) Sketch.heapify(seg);
+    final UpdateSketch us2 = (UpdateSketch) Sketch.heapify(seg);
     us2.update(2);
     assertEquals(us2.getEstimate(), 2.0);
     assertTrue(seg.isReadOnly());
@@ -95,33 +89,33 @@ public class ReadOnlyMemorySegmentTest {
 
   @Test
   public void heapifyCompactUnorderedSketch() {
-    UpdateSketch updateSketch = UpdateSketch.builder().build();
+    final UpdateSketch updateSketch = UpdateSketch.builder().build();
     updateSketch.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         ByteBuffer.wrap(updateSketch.compact(false, 
null).toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Sketch sketch = Sketch.heapify(seg);
+    final Sketch sketch = Sketch.heapify(seg);
     assertEquals(sketch.getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
   }
 
   @Test
   public void heapifyCompactOrderedSketch() {
-    UpdateSketch updateSketch = UpdateSketch.builder().build();
+    final UpdateSketch updateSketch = UpdateSketch.builder().build();
     updateSketch.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(updateSketch.compact().toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Sketch sketch = Sketch.heapify(seg);
+    final Sketch sketch = Sketch.heapify(seg);
     assertEquals(sketch.getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
   }
 
   @Test
   public void heapifyUnion() {
-    Union u1 = SetOperation.builder().buildUnion();
+    final Union u1 = SetOperation.builder().buildUnion();
     u1.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(u1.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Union u2 = (Union) SetOperation.heapify(seg);
+    final Union u2 = (Union) SetOperation.heapify(seg);
     u2.update(2);
     Assert.assertEquals(u2.getResult().getEstimate(), 2.0);
     assertTrue(seg.isReadOnly());
@@ -129,13 +123,13 @@ public class ReadOnlyMemorySegmentTest {
 
   @Test
   public void wrapAndTryUpdatingUnion() {
-    Union u1 = SetOperation.builder().buildUnion();
+    final Union u1 = SetOperation.builder().buildUnion();
     u1.update(1);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(u1.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
 
-    Union u2 = (Union) Sketches.wrapSetOperation(seg);
-    Union u3 = Sketches.wrapUnion(seg);
+    final Union u2 = (Union) Sketches.wrapSetOperation(seg);
+    final Union u3 = Sketches.wrapUnion(seg);
     Assert.assertEquals(u2.getResult().getEstimate(), 1.0);
     Assert.assertEquals(u3.getResult().getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
@@ -143,33 +137,33 @@ public class ReadOnlyMemorySegmentTest {
     try {
       u2.update(2);
       fail();
-    } catch (SketchesReadOnlyException e) {
+    } catch (final SketchesReadOnlyException e) {
       //expected
     }
 
     try {
       u3.update(2);
       fail();
-    } catch (SketchesReadOnlyException e) {
+    } catch (final SketchesReadOnlyException e) {
       //expected
     }
   }
 
   @Test
   public void heapifyIntersection() {
-    UpdateSketch us1 = UpdateSketch.builder().build();
+    final UpdateSketch us1 = UpdateSketch.builder().build();
     us1.update(1);
     us1.update(2);
-    UpdateSketch us2 = UpdateSketch.builder().build();
+    final UpdateSketch us2 = UpdateSketch.builder().build();
     us2.update(2);
     us2.update(3);
 
-    Intersection i1 = SetOperation.builder().buildIntersection();
+    final Intersection i1 = SetOperation.builder().buildIntersection();
     i1.intersect(us1);
     i1.intersect(us2);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(i1.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Intersection i2 = (Intersection) SetOperation.heapify(seg);
+    final Intersection i2 = (Intersection) SetOperation.heapify(seg);
     i2.intersect(us1);
     Assert.assertEquals(i2.getResult().getEstimate(), 1.0);
     assertTrue(seg.isReadOnly());
@@ -177,25 +171,25 @@ public class ReadOnlyMemorySegmentTest {
 
   @Test
   public void wrapIntersection() {
-    UpdateSketch us1 = UpdateSketch.builder().build();
+    final UpdateSketch us1 = UpdateSketch.builder().build();
     us1.update(1);
     us1.update(2);
-    UpdateSketch us2 = UpdateSketch.builder().build();
+    final UpdateSketch us2 = UpdateSketch.builder().build();
     us2.update(2);
     us2.update(3);
 
-    Intersection i1 = SetOperation.builder().buildIntersection();
+    final Intersection i1 = SetOperation.builder().buildIntersection();
     i1.intersect(us1);
     i1.intersect(us2);
-    MemorySegment seg = MemorySegment.ofBuffer(
+    final MemorySegment seg = MemorySegment.ofBuffer(
         
ByteBuffer.wrap(i1.toByteArray()).asReadOnlyBuffer().order(ByteOrder.nativeOrder()));
-    Intersection i2 = (Intersection) SetOperation.wrap(seg);
+    final Intersection i2 = (Intersection) SetOperation.wrap(seg);
     Assert.assertEquals(i2.getResult().getEstimate(), 1.0);
 
     boolean thrown = false;
     try {
       i2.intersect(us1);
-    } catch (SketchesReadOnlyException e) {
+    } catch (final SketchesReadOnlyException e) {
       thrown = true;
     }
     Assert.assertTrue(thrown);
@@ -210,7 +204,7 @@ public class ReadOnlyMemorySegmentTest {
   /**
    * @param s value to print
    */
-  static void println(String s) {
+  static void println(final String s) {
     //System.out.println(s); //disable here
   }
 
diff --git a/src/test/java/org/apache/datasketches/theta/UnionImplTest.java 
b/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
index d96ec04f3..f212b6547 100644
--- a/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
+++ b/src/test/java/org/apache/datasketches/theta/UnionImplTest.java
@@ -20,7 +20,6 @@
 package org.apache.datasketches.theta;
 
 import static java.lang.foreign.ValueLayout.JAVA_BYTE;
-import static java.lang.foreign.ValueLayout.JAVA_LONG_UNALIGNED;
 import static 
org.apache.datasketches.theta.BackwardConversions.convertSerVer3toSerVer1;
 import static 
org.apache.datasketches.theta.BackwardConversions.convertSerVer3toSerVer2;
 import static org.testng.Assert.assertEquals;
@@ -28,23 +27,11 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.lang.foreign.Arena;
-import java.nio.ByteOrder;
-
 import java.lang.foreign.MemorySegment;
 
 import org.apache.datasketches.common.MemorySegmentStatus;
 import org.apache.datasketches.common.SketchesArgumentException;
 import org.apache.datasketches.common.Util;
-import org.apache.datasketches.theta.CompactSketch;
-import org.apache.datasketches.theta.PreambleUtil;
-import org.apache.datasketches.theta.SetOperation;
-import org.apache.datasketches.theta.SetOperationBuilder;
-import org.apache.datasketches.theta.Sketch;
-import org.apache.datasketches.theta.Sketches;
-import org.apache.datasketches.theta.Union;
-import org.apache.datasketches.theta.UnionImpl;
-import org.apache.datasketches.theta.UpdateSketch;
-import org.apache.datasketches.theta.UpdateSketchBuilder;
 import org.testng.annotations.Test;
 
 public class UnionImplTest {
diff --git a/tools/testng.xml b/tools/testng.xml
index e7f188710..834cca0b8 100644
--- a/tools/testng.xml
+++ b/tools/testng.xml
@@ -1,4 +1,24 @@
 <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd"; >
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
 <suite name="AllTestsSuite">
   <test name="AllTests">
     <packages>


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

Reply via email to