You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2019/07/11 00:41:15 UTC

[incubator-datasketches-memory] branch master updated: Some small naming changes to the byte order variables to improve clarity rippled throughout.

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9f60597  Some small naming changes to the byte order variables to improve clarity rippled throughout.
9f60597 is described below

commit 9f6059713cafb5f6b68e7624abe5c7775ea4ed66
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Wed Jul 10 17:41:07 2019 -0700

    Some small naming changes to the byte order variables to improve clarity
    rippled throughout.
    
    It looks worse than it really is as there was no logic changes.
---
 scripts/PomParams.sh                               | 23 ++++++++
 .../memory/BBNonNativeWritableBufferImpl.java      |  4 +-
 .../memory/BBNonNativeWritableMemoryImpl.java      |  4 +-
 .../datasketches/memory/BBWritableBufferImpl.java  |  4 +-
 .../datasketches/memory/BBWritableMemoryImpl.java  |  4 +-
 .../org/apache/datasketches/memory/BaseState.java  | 69 ++++++++++++++++------
 .../memory/BaseWritableBufferImpl.java             |  8 +--
 .../memory/BaseWritableMemoryImpl.java             | 18 +++---
 .../memory/DirectNonNativeWritableBufferImpl.java  |  4 +-
 .../memory/DirectNonNativeWritableMemoryImpl.java  |  4 +-
 .../memory/DirectWritableBufferImpl.java           |  4 +-
 .../memory/DirectWritableMemoryImpl.java           |  4 +-
 .../memory/HeapNonNativeWritableBufferImpl.java    |  4 +-
 .../memory/HeapNonNativeWritableMemoryImpl.java    |  4 +-
 .../memory/HeapWritableBufferImpl.java             |  4 +-
 .../memory/HeapWritableMemoryImpl.java             |  4 +-
 .../memory/MapNonNativeWritableBufferImpl.java     |  4 +-
 .../memory/MapNonNativeWritableMemoryImpl.java     |  4 +-
 .../datasketches/memory/MapWritableBufferImpl.java |  4 +-
 .../datasketches/memory/MapWritableMemoryImpl.java |  4 +-
 .../org/apache/datasketches/memory/Memory.java     | 28 ++++-----
 .../java/org/apache/datasketches/memory/Util.java  | 12 ----
 .../apache/datasketches/memory/WritableMemory.java | 23 ++++----
 .../memory/AllocateDirectMemoryTest.java           |  2 +-
 .../AllocateDirectWritableMapMemoryTest.java       |  4 +-
 .../apache/datasketches/memory/BaseStateTest.java  | 15 +++++
 .../apache/datasketches/memory/Buffer2Test.java    |  2 +-
 .../org/apache/datasketches/memory/BufferTest.java |  2 +-
 .../apache/datasketches/memory/LeafImplTest.java   | 50 ++++++++--------
 .../org/apache/datasketches/memory/MemoryTest.java |  8 +--
 .../memory/NonNativeWritableBufferImplTest.java    |  8 +--
 .../memory/NonNativeWritableMemoryImplTest.java    |  4 +-
 .../datasketches/memory/SpecificLeafTest.java      | 48 ++++++++-------
 .../org/apache/datasketches/memory/UtilTest.java   |  6 --
 .../memory/WritableBufferImplTest.java             | 10 ++--
 .../memory/WritableMemoryImplTest.java             |  2 +-
 .../datasketches/memory/WritableMemoryTest.java    | 20 ++++---
 37 files changed, 238 insertions(+), 188 deletions(-)

diff --git a/scripts/PomParams.sh b/scripts/PomParams.sh
new file mode 100755
index 0000000..b646143
--- /dev/null
+++ b/scripts/PomParams.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# 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.
+
+PARAM=$1
+cd ../
+RESULT=$(mvn help:evaluate -Dexpression=$PARAM -q -DforceStdout)
+echo $RESULT
diff --git a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java
index 0c7f785..aceaac5 100644
--- a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java
@@ -54,7 +54,7 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
           unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
           type, byteBuf, originMemory)
@@ -66,7 +66,7 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, byteBuf, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java
index 03ae1dd..e43f381 100644
--- a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java
@@ -53,7 +53,7 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableMemoryImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, getByteBuffer())
@@ -65,7 +65,7 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, byteBuf, this)
diff --git a/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java
index 25abc6c..fdf4f87 100644
--- a/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java
@@ -54,7 +54,7 @@ final class BBWritableBufferImpl extends WritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, byteBuf, originMemory)
@@ -66,7 +66,7 @@ final class BBWritableBufferImpl extends WritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, byteBuf, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java
index 886729d..e3207aa 100644
--- a/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java
@@ -53,7 +53,7 @@ final class BBWritableMemoryImpl extends WritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableMemoryImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, getByteBuffer())
@@ -65,7 +65,7 @@ final class BBWritableMemoryImpl extends WritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableBufferImpl(
             unsafeObj, nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, byteBuf, this)
diff --git a/src/main/java/org/apache/datasketches/memory/BaseState.java b/src/main/java/org/apache/datasketches/memory/BaseState.java
index 353455c..b0398a2 100644
--- a/src/main/java/org/apache/datasketches/memory/BaseState.java
+++ b/src/main/java/org/apache/datasketches/memory/BaseState.java
@@ -36,6 +36,11 @@ import java.util.concurrent.atomic.AtomicLong;
  */
 abstract class BaseState {
 
+  //Byte Order related
+  static final ByteOrder nativeCpuByteOrder = ByteOrder.nativeOrder();
+  static final ByteOrder nonNativeCpuByteOrder = (nativeCpuByteOrder == ByteOrder.LITTLE_ENDIAN)
+      ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
+
   //Monitoring
   static final AtomicLong currentDirectMemoryAllocations_ = new AtomicLong();
   static final AtomicLong currentDirectMemoryAllocated_ = new AtomicLong();
@@ -92,6 +97,49 @@ abstract class BaseState {
         : unsafe.arrayBaseOffset(unsafeObj.getClass()));
   }
 
+  //Byte Order Related
+
+  /**
+   * Returns the CPU Byte Order
+   * @return the CPU Byte Order
+   */
+  public static final ByteOrder getCpuByteOrder() {
+    return nativeCpuByteOrder;
+  }
+
+  /**
+   * Gets the current Type ByteOrder.
+   * This may be different from the ByteOrder of the backing resource and of the CPU Byte Order.
+   * @return the current Type ByteOrder.
+   */
+  public final ByteOrder getTypeByteOrder() {
+    return isNonNativeType() ? BaseState.nonNativeCpuByteOrder : BaseState.nativeCpuByteOrder;
+  }
+
+  /**
+   * Returns true if the given byteOrder is the same as the native CPU byte order.
+   * @param byteOrder the given byte order
+   * @return true if the given byteOrder is the same as the native CPU byte order.
+   */
+  static boolean isNativeCpuByteOrder(final ByteOrder byteOrder) {
+    if (byteOrder == null) {
+      throw new IllegalArgumentException("ByteOrder parameter cannot be null.");
+    }
+    return (BaseState.nativeCpuByteOrder == byteOrder);
+  }
+
+  /**
+   * Returns true if the ByteOrder of the CPU is the same as the ByteOrder of the
+   * current Buffer or Memory and the same ByteOrder as the given byteOrder.
+   * @param byteOrder the given ByteOrder
+   * @return true if the ByteOrder of the CPU is the same as the ByteOrder of the
+   * current Buffer or Memory and the same ByteOrder as the given byteOrder.
+   */
+  public final boolean isByteOrderCompatible(final ByteOrder byteOrder) {
+    final ByteOrder typeBO = getTypeByteOrder();
+    return ((typeBO == getCpuByteOrder()) && (typeBO == byteOrder));
+  }
+
   /**
    * Returns true if the given object is an instance of this class and has equal data contents.
    * @param that the given object
@@ -133,15 +181,6 @@ abstract class BaseState {
   }
 
   /**
-   * Gets the current ByteOrder.
-   * This may be different from the ByteOrder of the backing resource.
-   * @return the current ByteOrder.
-   */
-  public final ByteOrder getByteOrder() {
-    return isNonNativeType() ? Util.nonNativeOrder : Util.nativeOrder;
-  }
-
-  /**
    * Gets the capacity of this object in bytes
    * @return the capacity of this object in bytes
    */
@@ -280,15 +319,6 @@ abstract class BaseState {
   }
 
   /**
-   * Returns true if the current byte order is native order.
-   * @return true if the current byte order is native order.
-   */
-  public final boolean isNativeOrder() {
-    assertValid();
-    return Util.isNativeOrder(getByteOrder());
-  }
-
-  /**
    * Returns true if this object or the backing resource is read-only.
    * @return true if this object or the backing resource is read-only.
    */
@@ -508,7 +538,8 @@ abstract class BaseState {
     sb.append("MemReq, hashCode    : ").append(memReqStr).append(LS);
     sb.append("Valid               : ").append(state.isValid()).append(LS);
     sb.append("Read Only           : ").append(state.isReadOnly()).append(LS);
-    sb.append("Byte Order          : ").append(state.getByteOrder().toString()).append(LS);
+    sb.append("Type Byte Order     : ").append(state.getTypeByteOrder().toString()).append(LS);
+    sb.append("CPU Byte Order      : ").append(nativeCpuByteOrder.toString()).append(LS);
     sb.append("JDK Major Version   : ").append(UnsafeUtil.JDK).append(LS);
     //Data detail
     sb.append("Data, littleEndian  :  0  1  2  3  4  5  6  7");
diff --git a/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java
index 8788fd7..2cb3c30 100644
--- a/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java
@@ -71,7 +71,7 @@ abstract class BaseWritableBufferImpl extends WritableBuffer {
   //REGIONS
   @Override
   public Buffer region() {
-    return writableRegionImpl(getPosition(), getEnd() - getPosition(), true, getByteOrder());
+    return writableRegionImpl(getPosition(), getEnd() - getPosition(), true, getTypeByteOrder());
   }
 
   @Override
@@ -84,7 +84,7 @@ abstract class BaseWritableBufferImpl extends WritableBuffer {
 
   @Override
   public WritableBuffer writableRegion() {
-    return writableRegionImpl(getPosition(), getEnd() - getPosition(), false, getByteOrder());
+    return writableRegionImpl(getPosition(), getEnd() - getPosition(), false, getTypeByteOrder());
   }
 
   @Override
@@ -114,7 +114,7 @@ abstract class BaseWritableBufferImpl extends WritableBuffer {
   //DUPLICATES
   @Override
   public Buffer duplicate() {
-    return writableDuplicateImpl(true, getByteOrder());
+    return writableDuplicateImpl(true, getTypeByteOrder());
   }
 
   @Override
@@ -124,7 +124,7 @@ abstract class BaseWritableBufferImpl extends WritableBuffer {
 
   @Override
   public WritableBuffer writableDuplicate() {
-    return writableDuplicateImpl(false, getByteOrder());
+    return writableDuplicateImpl(false, getTypeByteOrder());
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java
index 15315c5..f046a7a 100644
--- a/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java
@@ -72,7 +72,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
       final long lengthBytes, final boolean localReadOnly, final ByteOrder byteOrder) {
     if (lengthBytes == 0) { return BaseWritableMemoryImpl.ZERO_SIZE_MEMORY; }
     final int typeId = localReadOnly ? READONLY : 0;
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableMemoryImpl(arr, offsetBytes, lengthBytes, typeId)
         : new HeapNonNativeWritableMemoryImpl(arr, offsetBytes, lengthBytes, typeId);
   }
@@ -84,7 +84,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
       throw new ReadOnlyException("ByteBuffer is Read Only");
     }
     final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new BBWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
             abb.regionOffset, abb.capacityBytes, typeId, byteBuf)
         : new BBNonNativeWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
@@ -102,7 +102,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
       throw new ReadOnlyException("File is Read Only");
     }
     final int typeId = (dirWMap.resourceReadOnly || localReadOnly) ? READONLY : 0;
-    final BaseWritableMemoryImpl wmem = Util.isNativeOrder(byteOrder)
+    final BaseWritableMemoryImpl wmem = isNativeCpuByteOrder(byteOrder)
         ? new MapWritableMemoryImpl(dirWMap.nativeBaseOffset, 0L, capacityBytes,
             typeId, dirWMap.getValid())
         : new MapNonNativeWritableMemoryImpl(dirWMap.nativeBaseOffset, 0L, capacityBytes,
@@ -119,7 +119,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
     }
     final AllocateDirect direct = new AllocateDirect(capacityBytes);
     final int typeId = 0; //direct is never read-only on construction
-    final BaseWritableMemoryImpl wmem = Util.isNativeOrder(byteOrder)
+    final BaseWritableMemoryImpl wmem = isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableMemoryImpl(direct.getNativeBaseOffset(), 0L, capacityBytes,
             typeId, direct.getValid(), memReqSvr)
         : new DirectNonNativeWritableMemoryImpl(direct.getNativeBaseOffset(), 0L, capacityBytes,
@@ -148,14 +148,14 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
               + unsafeObj.getClass().getSimpleName()
               + " array, it could not be viewed as a ByteBuffer.");
     }
-    result.order(getByteOrder());
+    result.order(getTypeByteOrder());
     return result;
   }
 
   //REGIONS
   @Override
   public Memory region(final long offsetBytes, final long capacityBytes) {
-    return writableRegionImpl(offsetBytes, capacityBytes, true, getByteOrder());
+    return writableRegionImpl(offsetBytes, capacityBytes, true, getTypeByteOrder());
   }
 
   @Override
@@ -165,7 +165,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
 
   @Override
   public WritableMemory writableRegion(final long offsetBytes, final long capacityBytes) {
-    return writableRegionImpl(offsetBytes, capacityBytes, false, getByteOrder());
+    return writableRegionImpl(offsetBytes, capacityBytes, false, getTypeByteOrder());
   }
 
   @Override
@@ -191,7 +191,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
   //AS BUFFER
   @Override
   public Buffer asBuffer() {
-    return asWritableBufferImpl(true, getByteOrder());
+    return asWritableBufferImpl(true, getTypeByteOrder());
   }
 
   @Override
@@ -201,7 +201,7 @@ abstract class BaseWritableMemoryImpl extends WritableMemory {
 
   @Override
   public WritableBuffer asWritableBuffer() {
-    return asWritableBufferImpl(false, getByteOrder());
+    return asWritableBufferImpl(false, getTypeByteOrder());
   }
 
   @Override
diff --git a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java
index 017ba33..7a5f08d 100644
--- a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java
@@ -54,7 +54,7 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, memReqSvr, originMemory)
@@ -66,7 +66,7 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, memReqSvr, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java
index d0c6f6a..ca6eb98 100644
--- a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java
@@ -52,7 +52,7 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableMemoryImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, memReqSvr)
@@ -64,7 +64,7 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, memReqSvr, this)
diff --git a/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java
index a84ac29..9bea6f6 100644
--- a/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java
@@ -54,7 +54,7 @@ final class DirectWritableBufferImpl extends WritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, memReqSvr, originMemory)
@@ -66,7 +66,7 @@ final class DirectWritableBufferImpl extends WritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, memReqSvr, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java
index 7033529..00c1607 100644
--- a/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java
@@ -52,7 +52,7 @@ final class DirectWritableMemoryImpl extends WritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableMemoryImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, memReqSvr)
@@ -64,7 +64,7 @@ final class DirectWritableMemoryImpl extends WritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new DirectWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, memReqSvr, this)
diff --git a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java
index 97ea836..62918b6 100644
--- a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java
@@ -47,7 +47,7 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes,
             type, originMemory)
@@ -59,7 +59,7 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(), getCapacity(),
             type, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java
index 0512ccd..49b5d54 100644
--- a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java
@@ -46,7 +46,7 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableMemoryImpl(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes,
             type)
@@ -58,7 +58,7 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(), getCapacity(),
             type, this)
diff --git a/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java
index 72b6c35..cb21267 100644
--- a/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java
@@ -47,7 +47,7 @@ final class HeapWritableBufferImpl extends WritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes,
             type, originMemory)
@@ -59,7 +59,7 @@ final class HeapWritableBufferImpl extends WritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(), getCapacity(),
             type, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java
index 53e3600..36a821d 100644
--- a/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java
@@ -46,7 +46,7 @@ final class HeapWritableMemoryImpl extends WritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableMemoryImpl(
             unsafeObj, getRegionOffset(offsetBytes), capacityBytes,
             type)
@@ -58,7 +58,7 @@ final class HeapWritableMemoryImpl extends WritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new HeapWritableBufferImpl(
             unsafeObj, getRegionOffset(), getCapacity(),
             type, this)
diff --git a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java
index 39155c2..bd67755 100644
--- a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java
@@ -50,7 +50,7 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, originMemory)
@@ -62,7 +62,7 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java
index baa4cf8..a1ebf89 100644
--- a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java
@@ -49,7 +49,7 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableMemoryImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid)
@@ -61,7 +61,7 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, this)
diff --git a/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java b/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java
index f413f4d..805fa18 100644
--- a/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java
@@ -50,7 +50,7 @@ final class MapWritableBufferImpl extends WritableBufferImpl {
   BaseWritableBufferImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid, originMemory)
@@ -62,7 +62,7 @@ final class MapWritableBufferImpl extends WritableBufferImpl {
   @Override
   BaseWritableBufferImpl toDuplicate(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | DUPLICATE | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, originMemory)
diff --git a/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java b/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java
index 8a51dbf..c099435 100644
--- a/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java
@@ -49,7 +49,7 @@ final class MapWritableMemoryImpl extends WritableMemoryImpl {
   BaseWritableMemoryImpl toWritableRegion(final long offsetBytes, final long capacityBytes,
       final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | REGION | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableMemoryImpl(
             nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
             type, valid)
@@ -61,7 +61,7 @@ final class MapWritableMemoryImpl extends WritableMemoryImpl {
   @Override
   BaseWritableBufferImpl toWritableBuffer(final boolean readOnly, final ByteOrder byteOrder) {
     final int type = typeId | (readOnly ? READONLY : 0);
-    return Util.isNativeOrder(byteOrder)
+    return isNativeCpuByteOrder(byteOrder)
         ? new MapWritableBufferImpl(
             nativeBaseOffset, getRegionOffset(), getCapacity(),
             type, valid, this)
diff --git a/src/main/java/org/apache/datasketches/memory/Memory.java b/src/main/java/org/apache/datasketches/memory/Memory.java
index 289ce4b..670ffcc 100644
--- a/src/main/java/org/apache/datasketches/memory/Memory.java
+++ b/src/main/java/org/apache/datasketches/memory/Memory.java
@@ -19,7 +19,6 @@
 
 package org.apache.datasketches.memory;
 
-import static org.apache.datasketches.memory.Util.nativeOrder;
 import static org.apache.datasketches.memory.Util.negativeCheck;
 import static org.apache.datasketches.memory.Util.nullCheck;
 import static org.apache.datasketches.memory.Util.zeroCheck;
@@ -64,10 +63,10 @@ public abstract class Memory extends BaseState {
   }
 
   /**
-   * Accesses the given ByteBuffer for read-only operations. The returned <i>Memory</i> object has the
-   * given byte order, ignoring the byte order of the given ByteBuffer.  If the capacity of the
-   * given ByteBuffer is zero the byte order of the returned <i>Memory</i> object (as well as backing
-   * storage) is unspecified.
+   * Accesses the given ByteBuffer for read-only operations. The returned <i>Memory</i> object has
+   * the given byte order, ignoring the byte order of the given ByteBuffer.  If the capacity of the
+   * given ByteBuffer is zero the byte order of the returned <i>Memory</i> object (as well as
+   * backing storage) is unspecified.
    *
    * <p><b>Note:</b> Always qualify this method with the class name, e.g.,
    * <i>Memory.wrap(...)</i>.
@@ -193,7 +192,7 @@ public abstract class Memory extends BaseState {
   /**
    * Returns the specified region of this Memory object as a new read-only {@link ByteBuffer}
    * object. The {@link ByteOrder} of the returned {@code ByteBuffer} corresponds to the {@linkplain
-   * #getByteOrder() byte order of this Memory}. The returned ByteBuffer's position is 0 and
+   * #getTypeByteOrder() byte order of this Memory}. The returned ByteBuffer's position is 0 and
    * the limit is equal to the capacity.
    *
    * <p>If this Memory object is the result of wrapping non-byte Java arrays ({@link
@@ -227,7 +226,8 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final boolean[] arr) {
     final long lengthBytes = arr.length << Prim.BOOLEAN.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true,
+        BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -241,7 +241,7 @@ public abstract class Memory extends BaseState {
    * @return a new <i>Memory</i> for read operations
    */
   public static Memory wrap(final byte[] arr) {
-    return Memory.wrap(arr, 0, arr.length, nativeOrder);
+    return Memory.wrap(arr, 0, arr.length, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -289,7 +289,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final char[] arr) {
     final long lengthBytes = arr.length << Prim.CHAR.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -303,7 +303,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final short[] arr) {
     final long lengthBytes = arr.length << Prim.SHORT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -317,7 +317,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final int[] arr) {
     final long lengthBytes = arr.length << Prim.INT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -332,7 +332,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final long[] arr) {
     final long lengthBytes = arr.length << Prim.LONG.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -347,7 +347,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final float[] arr) {
     final long lengthBytes = arr.length << Prim.FLOAT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -362,7 +362,7 @@ public abstract class Memory extends BaseState {
    */
   public static Memory wrap(final double[] arr) {
     final long lengthBytes = arr.length << Prim.DOUBLE.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, true, BaseState.nativeCpuByteOrder);
   }
 
   //PRIMITIVE getX() and getXArray()
diff --git a/src/main/java/org/apache/datasketches/memory/Util.java b/src/main/java/org/apache/datasketches/memory/Util.java
index 1fc2e59..7599321 100644
--- a/src/main/java/org/apache/datasketches/memory/Util.java
+++ b/src/main/java/org/apache/datasketches/memory/Util.java
@@ -21,18 +21,12 @@ package org.apache.datasketches.memory;
 
 import static org.apache.datasketches.memory.UnsafeUtil.checkBounds;
 
-import java.nio.ByteOrder;
 import java.util.Random;
 
 /**
  * @author Lee Rhodes
  */
 public final class Util {
-  static final ByteOrder nativeOrder = ByteOrder.nativeOrder();
-  static final ByteOrder nonNativeOrder = (nativeOrder == ByteOrder.LITTLE_ENDIAN)
-      ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
-
-
   private Util() { }
 
   /**
@@ -261,10 +255,4 @@ public final class Util {
     }
   }
 
-  static boolean isNativeOrder(final ByteOrder byteOrder) {
-    if (byteOrder == null) {
-      throw new IllegalArgumentException("ByteOrder parameter cannot be null.");
-    }
-    return (nativeOrder == byteOrder);
-  }
 }
diff --git a/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/src/main/java/org/apache/datasketches/memory/WritableMemory.java
index 39fdf39..de1201c 100644
--- a/src/main/java/org/apache/datasketches/memory/WritableMemory.java
+++ b/src/main/java/org/apache/datasketches/memory/WritableMemory.java
@@ -19,7 +19,6 @@
 
 package org.apache.datasketches.memory;
 
-import static org.apache.datasketches.memory.Util.nativeOrder;
 import static org.apache.datasketches.memory.Util.negativeCheck;
 import static org.apache.datasketches.memory.Util.nullCheck;
 import static org.apache.datasketches.memory.Util.zeroCheck;
@@ -91,7 +90,7 @@ public abstract class WritableMemory extends Memory {
    * @throws IOException file not found or a RuntimeException.
    */
   public static WritableMapHandle map(final File file) throws IOException {
-    return map(file, 0, file.length(), nativeOrder);
+    return map(file, 0, file.length(), BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -158,7 +157,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableDirectHandle allocateDirect(final long capacityBytes,
       final MemoryRequestServer memReqSvr) {
-    return BaseWritableMemoryImpl.wrapDirect(capacityBytes, nativeOrder, memReqSvr);
+    return BaseWritableMemoryImpl.wrapDirect(capacityBytes, BaseState.nativeCpuByteOrder, memReqSvr);
   }
 
   //REGIONS
@@ -244,7 +243,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory allocate(final int capacityBytes) {
     final byte[] arr = new byte[capacityBytes];
-    return wrap(arr, nativeOrder);
+    return wrap(arr, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -273,7 +272,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final boolean[] arr) {
     final long lengthBytes = arr.length << Prim.BOOLEAN.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -287,7 +286,7 @@ public abstract class WritableMemory extends Memory {
    * @return a new WritableMemory for write operations on the given primitive array.
    */
   public static WritableMemory wrap(final byte[] arr) {
-    return WritableMemory.wrap(arr, 0, arr.length, nativeOrder);
+    return WritableMemory.wrap(arr, 0, arr.length, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -336,7 +335,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final char[] arr) {
     final long lengthBytes = arr.length << Prim.CHAR.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -351,7 +350,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final short[] arr) {
     final long lengthBytes = arr.length << Prim.SHORT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -366,7 +365,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final int[] arr) {
     final long lengthBytes = arr.length << Prim.INT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -381,7 +380,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final long[] arr) {
     final long lengthBytes = arr.length << Prim.LONG.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -396,7 +395,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final float[] arr) {
     final long lengthBytes = arr.length << Prim.FLOAT.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
 
   /**
@@ -411,7 +410,7 @@ public abstract class WritableMemory extends Memory {
    */
   public static WritableMemory wrap(final double[] arr) {
     final long lengthBytes = arr.length << Prim.DOUBLE.shift();
-    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, nativeOrder);
+    return BaseWritableMemoryImpl.wrapHeapArray(arr, 0L, lengthBytes, false, BaseState.nativeCpuByteOrder);
   }
   //END OF CONSTRUCTOR-TYPE METHODS
 
diff --git a/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java b/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java
index 2ab9d62..cb8b503 100644
--- a/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java
@@ -89,7 +89,7 @@ public class AllocateDirectMemoryTest {
   @Test
   public void checkNonNativeDirect() { //not allowed in public API
     try (WritableDirectHandle h =
-        BaseWritableMemoryImpl.wrapDirect(8, Util.nonNativeOrder, null)) {
+        BaseWritableMemoryImpl.wrapDirect(8, BaseState.nonNativeCpuByteOrder, null)) {
       WritableMemory wmem = h.get();
       wmem.putChar(0, (char) 1);
       assertEquals(wmem.getByte(1), (byte) 1);
diff --git a/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java b/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java
index 29af4d9..576a829 100644
--- a/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java
@@ -117,7 +117,7 @@ public class AllocateDirectWritableMapMemoryTest {
     file.deleteOnExit();  //comment out if you want to examine the file.
 
     final long bytes = 8;
-    try (WritableMapHandle h = WritableMemory.map(file, 0L, bytes, Util.nonNativeOrder)) {
+    try (WritableMapHandle h = WritableMemory.map(file, 0L, bytes, BaseState.nonNativeCpuByteOrder)) {
       WritableMemory wmem = h.get();
       wmem.putChar(0, (char) 1);
       assertEquals(wmem.getByte(1), (byte) 1);
@@ -145,7 +145,7 @@ public class AllocateDirectWritableMapMemoryTest {
   public void checkOverLength()  {
     File file =
         new File(getClass().getClassLoader().getResource("GettysburgAddress.txt").getFile());
-    try (WritableMapHandle rh = WritableMemory.map(file, 0, 1 << 20, Util.nativeOrder)) {
+    try (WritableMapHandle rh = WritableMemory.map(file, 0, 1 << 20, ByteOrder.nativeOrder())) {
       //
     } catch (IOException e) {
       throw new RuntimeException(e);
diff --git a/src/test/java/org/apache/datasketches/memory/BaseStateTest.java b/src/test/java/org/apache/datasketches/memory/BaseStateTest.java
index 048b5b2..27af71d 100644
--- a/src/test/java/org/apache/datasketches/memory/BaseStateTest.java
+++ b/src/test/java/org/apache/datasketches/memory/BaseStateTest.java
@@ -23,6 +23,9 @@ import static org.apache.datasketches.memory.UnsafeUtil.ARRAY_DOUBLE_INDEX_SCALE
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.nio.ByteOrder;
 
 import org.testng.annotations.Test;
 
@@ -84,6 +87,18 @@ public class BaseStateTest {
   }
 
   @Test
+  public void checkIsByteOrderCompatible() {
+    WritableMemory wmem = WritableMemory.allocate(8);
+    assertTrue(wmem.isByteOrderCompatible(ByteOrder.nativeOrder()));
+  }
+
+  @Test(expectedExceptions = IllegalArgumentException.class)
+  public void checkByteOrderNull() {
+    BaseState.isNativeCpuByteOrder(null);
+    fail();
+  }
+
+  @Test
   public void printlnTest() {
     println("PRINTING: "+this.getClass().getName());
   }
diff --git a/src/test/java/org/apache/datasketches/memory/Buffer2Test.java b/src/test/java/org/apache/datasketches/memory/Buffer2Test.java
index 7f317ff..093c7f8 100644
--- a/src/test/java/org/apache/datasketches/memory/Buffer2Test.java
+++ b/src/test/java/org/apache/datasketches/memory/Buffer2Test.java
@@ -343,7 +343,7 @@ public class Buffer2Test {
     for (int i = 0; i < n; i++) { arr[i] = i; }
     Memory mem = Memory.wrap(arr);
     Buffer buf = mem.asBuffer();
-    Buffer reg = buf.region(n2 * 8, n2 * 8, buf.getByteOrder()); //top half
+    Buffer reg = buf.region(n2 * 8, n2 * 8, buf.getTypeByteOrder()); //top half
     for (int i = 0; i < n2; i++) {
       long v = reg.getLong(i * 8);
       long e = i + n2;
diff --git a/src/test/java/org/apache/datasketches/memory/BufferTest.java b/src/test/java/org/apache/datasketches/memory/BufferTest.java
index 1459209..9432842 100644
--- a/src/test/java/org/apache/datasketches/memory/BufferTest.java
+++ b/src/test/java/org/apache/datasketches/memory/BufferTest.java
@@ -199,7 +199,7 @@ public class BufferTest {
     ByteBuffer bb = ByteBuffer.allocate(n * 8);
     bb.order(ByteOrder.BIG_ENDIAN);
     Buffer buf = Buffer.wrap(bb);
-    assertEquals(buf.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(buf.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
diff --git a/src/test/java/org/apache/datasketches/memory/LeafImplTest.java b/src/test/java/org/apache/datasketches/memory/LeafImplTest.java
index 71a6559..f9c5eda 100644
--- a/src/test/java/org/apache/datasketches/memory/LeafImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/LeafImplTest.java
@@ -58,7 +58,7 @@ public class LeafImplTest {
     assertEquals(mem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(mem.getByteBuffer() == null);
-    assertTrue(mem.getByteOrder() == Util.nativeOrder);
+    assertTrue(mem.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(mem.getMemoryRequestServer() != null);
     assertTrue(mem.isDirect());
     assertTrue(mem.getUnsafeObject() == null);
@@ -72,13 +72,13 @@ public class LeafImplTest {
     assertEquals(buf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(buf.getByteBuffer() == null);
-    assertTrue(buf.getByteOrder() == Util.nativeOrder);
+    assertTrue(buf.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(buf.getMemoryRequestServer() != null);
     assertTrue(buf.isDirect());
     assertTrue(buf.getUnsafeObject() == null);
     assertTrue(buf.isValid() == true);
 
-    WritableMemory nnMem = mem.writableRegion(off, cap, Util.nonNativeOrder);
+    WritableMemory nnMem = mem.writableRegion(off, cap, BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnMem.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnMem.writableRegion(off, cap, BE).getShort(0), 256);
@@ -86,13 +86,13 @@ public class LeafImplTest {
     assertEquals(nnMem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(nnMem.getByteBuffer() == null);
-    assertTrue(nnMem.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnMem.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnMem.getMemoryRequestServer() != null);
     assertTrue(nnMem.isDirect());
     assertTrue(nnMem.getUnsafeObject() == null);
     assertTrue(nnMem.isValid() == true);
 
-    WritableBuffer nnBuf = mem.asWritableBuffer(Util.nonNativeOrder);
+    WritableBuffer nnBuf = mem.asWritableBuffer(BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnBuf.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnBuf.writableRegion(off, cap, BE).getShort(0), 256);
@@ -100,7 +100,7 @@ public class LeafImplTest {
     assertEquals(nnBuf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(nnBuf.getByteBuffer() == null);
-    assertTrue(nnBuf.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnBuf.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnBuf.getMemoryRequestServer() != null);
     assertTrue(nnBuf.isDirect());
     assertTrue(nnBuf.getUnsafeObject() == null);
@@ -124,7 +124,7 @@ public class LeafImplTest {
     assertTrue(file.isFile());
     file.deleteOnExit();  //comment out if you want to examine the file.
 
-    try (WritableMapHandle wmh = WritableMemory.map(file, off, cap, Util.nativeOrder)) {
+    try (WritableMapHandle wmh = WritableMemory.map(file, off, cap, BaseState.nativeCpuByteOrder)) {
       WritableMemory mem = wmh.get();
       mem.putShort(0, (short) 1);
       assertEquals(mem.getByte(0), (byte) 1);
@@ -139,7 +139,7 @@ public class LeafImplTest {
     assertEquals(mem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(mem.getByteBuffer() == null);
-    assertTrue(mem.getByteOrder() == Util.nativeOrder);
+    assertTrue(mem.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(mem.getMemoryRequestServer() == null);
     assertTrue(mem.isDirect());
     assertTrue(mem.getUnsafeObject() == null);
@@ -153,13 +153,13 @@ public class LeafImplTest {
     assertEquals(buf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(buf.getByteBuffer() == null);
-    assertTrue(buf.getByteOrder() == Util.nativeOrder);
+    assertTrue(buf.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(buf.getMemoryRequestServer() == null);
     assertTrue(buf.isDirect());
     assertTrue(buf.getUnsafeObject() == null);
     assertTrue(buf.isValid() == true);
 
-    WritableMemory nnMem = mem.writableRegion(off, cap, Util.nonNativeOrder);
+    WritableMemory nnMem = mem.writableRegion(off, cap, BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnMem.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnMem.writableRegion(off, cap, BE).getShort(0), 256);
@@ -167,13 +167,13 @@ public class LeafImplTest {
     assertEquals(nnMem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(nnMem.getByteBuffer() == null);
-    assertTrue(nnMem.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnMem.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnMem.getMemoryRequestServer() == null);
     assertTrue(nnMem.isDirect());
     assertTrue(nnMem.getUnsafeObject() == null);
     assertTrue(nnMem.isValid() == true);
 
-    WritableBuffer nnBuf = mem.asWritableBuffer(Util.nonNativeOrder);
+    WritableBuffer nnBuf = mem.asWritableBuffer(BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnBuf.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnBuf.writableRegion(off, cap, BE).getShort(0), 256);
@@ -181,7 +181,7 @@ public class LeafImplTest {
     assertEquals(nnBuf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(nnBuf.getByteBuffer() == null);
-    assertTrue(nnBuf.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnBuf.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnBuf.getMemoryRequestServer() == null);
     assertTrue(nnBuf.isDirect());
     assertTrue(nnBuf.getUnsafeObject() == null);
@@ -212,7 +212,7 @@ public class LeafImplTest {
     assertEquals(mem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(mem.getByteBuffer() != null);
-    assertTrue(mem.getByteOrder() == Util.nativeOrder);
+    assertTrue(mem.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(mem.getMemoryRequestServer() == null);
     Object obj = mem.getUnsafeObject();
     if (direct) {
@@ -232,7 +232,7 @@ public class LeafImplTest {
     assertEquals(buf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(buf.getByteBuffer() != null);
-    assertTrue(buf.getByteOrder() == Util.nativeOrder);
+    assertTrue(buf.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(buf.getMemoryRequestServer() == null);
     obj = buf.getUnsafeObject();
     if (direct) {
@@ -244,7 +244,7 @@ public class LeafImplTest {
     }
     assertTrue(buf.isValid() == true);
 
-    WritableMemory nnMem = mem.writableRegion(off, cap, Util.nonNativeOrder);
+    WritableMemory nnMem = mem.writableRegion(off, cap, BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnMem.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnMem.writableRegion(off, cap, BE).getShort(0), 256);
@@ -252,7 +252,7 @@ public class LeafImplTest {
     assertEquals(nnMem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(nnMem.getByteBuffer() != null);
-    assertTrue(nnMem.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnMem.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnMem.getMemoryRequestServer() == null);
     obj = nnMem.getUnsafeObject();
     if (direct) {
@@ -264,7 +264,7 @@ public class LeafImplTest {
     }
     assertTrue(nnMem.isValid() == true);
 
-    WritableBuffer nnBuf = mem.asWritableBuffer(Util.nonNativeOrder);
+    WritableBuffer nnBuf = mem.asWritableBuffer(BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnBuf.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnBuf.writableRegion(off, cap, BE).getShort(0), 256);
@@ -272,7 +272,7 @@ public class LeafImplTest {
     assertEquals(nnBuf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(nnBuf.getByteBuffer() != null);
-    assertTrue(nnBuf.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnBuf.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnBuf.getMemoryRequestServer() == null);
     obj = nnBuf.getUnsafeObject();
     if (direct) {
@@ -301,7 +301,7 @@ public class LeafImplTest {
     assertEquals(mem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(mem.getByteBuffer() == null);
-    assertTrue(mem.getByteOrder() == Util.nativeOrder);
+    assertTrue(mem.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(mem.getMemoryRequestServer() == null);
     assertFalse(mem.isDirect());
     assertTrue(mem.getUnsafeObject() != null);
@@ -315,13 +315,13 @@ public class LeafImplTest {
     assertEquals(buf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(buf.getByteBuffer() == null);
-    assertTrue(buf.getByteOrder() == Util.nativeOrder);
+    assertTrue(buf.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
     assertTrue(buf.getMemoryRequestServer() == null);
     assertFalse(buf.isDirect());
     assertTrue(buf.getUnsafeObject() != null);
     assertTrue(buf.isValid() == true);
 
-    WritableMemory nnMem = mem.writableRegion(off, cap, Util.nonNativeOrder);
+    WritableMemory nnMem = mem.writableRegion(off, cap, BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnMem.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnMem.writableRegion(off, cap, BE).getShort(0), 256);
@@ -329,13 +329,13 @@ public class LeafImplTest {
     assertEquals(nnMem.asWritableBuffer(BE).getShort(0), 256);
 
     assertTrue(nnMem.getByteBuffer() == null);
-    assertTrue(nnMem.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnMem.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnMem.getMemoryRequestServer() == null);
     assertFalse(nnMem.isDirect());
     assertTrue(nnMem.getUnsafeObject() != null);
     assertTrue(nnMem.isValid() == true);
 
-    WritableBuffer nnBuf = mem.asWritableBuffer(Util.nonNativeOrder);
+    WritableBuffer nnBuf = mem.asWritableBuffer(BaseState.nonNativeCpuByteOrder);
 
     assertEquals(nnBuf.writableRegion(off, cap, LE).getShort(0), 1);
     assertEquals(nnBuf.writableRegion(off, cap, BE).getShort(0), 256);
@@ -343,7 +343,7 @@ public class LeafImplTest {
     assertEquals(nnBuf.writableDuplicate(BE).getShort(0), 256);
 
     assertTrue(nnBuf.getByteBuffer() == null);
-    assertTrue(nnBuf.getByteOrder() == Util.nonNativeOrder);
+    assertTrue(nnBuf.getTypeByteOrder() == BaseState.nonNativeCpuByteOrder);
     assertTrue(nnBuf.getMemoryRequestServer() == null);
     assertFalse(nnBuf.isDirect());
     assertTrue(nnBuf.getUnsafeObject() != null);
diff --git a/src/test/java/org/apache/datasketches/memory/MemoryTest.java b/src/test/java/org/apache/datasketches/memory/MemoryTest.java
index 5abdcd2..dd9d894 100644
--- a/src/test/java/org/apache/datasketches/memory/MemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/MemoryTest.java
@@ -199,8 +199,8 @@ public class MemoryTest {
     ByteBuffer bb = ByteBuffer.allocate(n * 8);
     bb.order(ByteOrder.BIG_ENDIAN);
     Memory mem = Memory.wrap(bb);
-    assertFalse(mem.isNativeOrder());
-    assertEquals(mem.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertFalse(mem.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
+    assertEquals(mem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
@@ -255,7 +255,7 @@ public class MemoryTest {
     long[] arr = new long[n];
     for (int i = 0; i < n; i++) { arr[i] = i; }
     Memory mem = Memory.wrap(arr);
-    Memory reg = mem.region(n2 * 8, n2 * 8, Util.nonNativeOrder); //top half
+    Memory reg = mem.region(n2 * 8, n2 * 8, BaseState.nonNativeCpuByteOrder); //top half
     for (int i = 0; i < n2; i++) {
       long v = Long.reverseBytes(reg.getLong(i * 8));
       long e = i + n2;
@@ -295,7 +295,7 @@ public class MemoryTest {
       //println("" + wmem.getLong(i * 8));
     }
     //println("");
-    WritableMemory reg = wmem.writableRegion(n2 * 8, n2 * 8, Util.nonNativeOrder);
+    WritableMemory reg = wmem.writableRegion(n2 * 8, n2 * 8, BaseState.nonNativeCpuByteOrder);
     for (int i = 0; i < n2; i++) { reg.putLong(i * 8, i); }
     for (int i = 0; i < n; i++) {
       long v = wmem.getLong(i * 8);
diff --git a/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java b/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java
index 6a73cfb..70b9dcd 100644
--- a/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java
@@ -236,10 +236,10 @@ public class NonNativeWritableBufferImplTest {
     WritableMemory wmem = WritableMemory.wrap(bArr, ByteOrder.BIG_ENDIAN);
     WritableBuffer wbuf = wmem.asWritableBuffer();
     WritableBuffer wdup = wbuf.writableDuplicate();
-    assertEquals(wdup.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(wdup.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
 
     WritableBuffer wreg = wbuf.writableRegion();
-    assertEquals(wreg.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(wreg.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
@@ -248,10 +248,10 @@ public class NonNativeWritableBufferImplTest {
     WritableMemory wmem = WritableMemory.wrap(bArr, ByteOrder.BIG_ENDIAN);
     Buffer buf = wmem.asBuffer();
     Buffer dup = buf.duplicate();
-    assertEquals(dup.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
+    assertEquals(dup.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
 
     Buffer reg = buf.region();
-    assertEquals(reg.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
+    assertEquals(reg.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
   }
 
 }
diff --git a/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java b/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java
index 4b98aa3..d6b4204 100644
--- a/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java
@@ -203,7 +203,7 @@ public class NonNativeWritableMemoryImplTest {
   @Test
   public void checkRegion() {
     WritableMemory wreg = wmem.writableRegion(0, wmem.getCapacity());
-    assertEquals(wreg.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(wreg.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
@@ -211,7 +211,7 @@ public class NonNativeWritableMemoryImplTest {
     byte[] bArr1 = new byte[0];
     WritableMemory wmem1 = WritableMemory.wrap(bArr1, ByteOrder.BIG_ENDIAN);
     Memory reg = wmem1.region(0, wmem1.getCapacity());
-    assertEquals(reg.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
+    assertEquals(reg.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
   }
 
 }
diff --git a/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java b/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java
index 3988c82..4210e59 100644
--- a/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java
+++ b/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java
@@ -21,8 +21,6 @@ package org.apache.datasketches.memory;
 
 import static org.apache.datasketches.memory.BaseState.DUPLICATE;
 import static org.apache.datasketches.memory.BaseState.REGION;
-import static org.apache.datasketches.memory.Util.nativeOrder;
-import static org.apache.datasketches.memory.Util.nonNativeOrder;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
@@ -41,17 +39,17 @@ public class SpecificLeafTest {
   public void checkByteBufferLeafs() {
     int bytes = 128;
     ByteBuffer bb = ByteBuffer.allocate(bytes);
-    bb.order(nativeOrder);
+    bb.order(BaseState.nativeCpuByteOrder);
 
-    Memory mem = Memory.wrap(bb).region(0, bytes, nativeOrder);
+    Memory mem = Memory.wrap(bb).region(0, bytes, BaseState.nativeCpuByteOrder);
     assertTrue(mem.isBBType());
     assertTrue(mem.isReadOnly());
     checkCrossLeafTypeIds(mem);
-    Buffer buf = mem.asBuffer().region(0, bytes, nativeOrder);
+    Buffer buf = mem.asBuffer().region(0, bytes, BaseState.nativeCpuByteOrder);
 
-    bb.order(nonNativeOrder);
-    Memory mem2 = Memory.wrap(bb).region(0, bytes, nonNativeOrder);
-    Buffer buf2 = mem2.asBuffer().region(0, bytes, nonNativeOrder);
+    bb.order(BaseState.nonNativeCpuByteOrder);
+    Memory mem2 = Memory.wrap(bb).region(0, bytes, BaseState.nonNativeCpuByteOrder);
+    Buffer buf2 = mem2.asBuffer().region(0, bytes, BaseState.nonNativeCpuByteOrder);
     Buffer buf3 = buf2.duplicate();
 
     assertTrue((mem.getTypeId() & REGION) > 0);
@@ -69,14 +67,14 @@ public class SpecificLeafTest {
       assertTrue(wmem.isDirectType());
       assertFalse(wmem.isReadOnly());
       checkCrossLeafTypeIds(wmem);
-      WritableMemory nnwmem = wmem.writableRegion(0, bytes, nonNativeOrder);
+      WritableMemory nnwmem = wmem.writableRegion(0, bytes, BaseState.nonNativeCpuByteOrder);
 
-      Memory mem = wmem.region(0, bytes, nativeOrder);
-      Buffer buf = mem.asBuffer().region(0, bytes, nativeOrder);
+      Memory mem = wmem.region(0, bytes, BaseState.nativeCpuByteOrder);
+      Buffer buf = mem.asBuffer().region(0, bytes, BaseState.nativeCpuByteOrder);
 
 
-      Memory mem2 = nnwmem.region(0, bytes, nonNativeOrder);
-      Buffer buf2 = mem2.asBuffer().region(0, bytes, nonNativeOrder);
+      Memory mem2 = nnwmem.region(0, bytes, BaseState.nonNativeCpuByteOrder);
+      Buffer buf2 = mem2.asBuffer().region(0, bytes, BaseState.nonNativeCpuByteOrder);
       Buffer buf3 = buf2.duplicate();
 
       assertTrue((mem.getTypeId() & REGION) > 0);
@@ -104,19 +102,19 @@ public class SpecificLeafTest {
 
     final long bytes = 128;
 
-    try (WritableMapHandle h = WritableMemory.map(file, 0L, bytes, Util.nativeOrder)) {
+    try (WritableMapHandle h = WritableMemory.map(file, 0L, bytes, BaseState.nativeCpuByteOrder)) {
       WritableMemory mem = h.get(); //native mem
       assertTrue(mem.isMapType());
       assertFalse(mem.isReadOnly());
       checkCrossLeafTypeIds(mem);
-      Memory nnreg = mem.region(0, bytes, nonNativeOrder);
+      Memory nnreg = mem.region(0, bytes, BaseState.nonNativeCpuByteOrder);
 
-      Memory reg = mem.region(0, bytes, nativeOrder);
-      Buffer buf = reg.asBuffer().region(0, bytes, nativeOrder);
+      Memory reg = mem.region(0, bytes, BaseState.nativeCpuByteOrder);
+      Buffer buf = reg.asBuffer().region(0, bytes, BaseState.nativeCpuByteOrder);
       Buffer buf4 = buf.duplicate();
 
-      Memory reg2 = nnreg.region(0, bytes, nonNativeOrder);
-      Buffer buf2 = reg2.asBuffer().region(0, bytes, nonNativeOrder);
+      Memory reg2 = nnreg.region(0, bytes, BaseState.nonNativeCpuByteOrder);
+      Buffer buf2 = reg2.asBuffer().region(0, bytes, BaseState.nonNativeCpuByteOrder);
       Buffer buf3 = buf2.duplicate();
 
       assertTrue((reg.getTypeId() & REGION) > 0);
@@ -135,14 +133,14 @@ public class SpecificLeafTest {
     assertTrue(mem.isHeapType());
     assertTrue(mem.isReadOnlyType());
     checkCrossLeafTypeIds(mem);
-    Memory nnreg = mem.region(0, bytes, nonNativeOrder);
+    Memory nnreg = mem.region(0, bytes, BaseState.nonNativeCpuByteOrder);
 
-    Memory reg = mem.region(0, bytes, nativeOrder);
-    Buffer buf = reg.asBuffer().region(0, bytes, nativeOrder);
+    Memory reg = mem.region(0, bytes, BaseState.nativeCpuByteOrder);
+    Buffer buf = reg.asBuffer().region(0, bytes, BaseState.nativeCpuByteOrder);
     Buffer buf4 = buf.duplicate();
 
-    Memory reg2 = nnreg.region(0, bytes, nonNativeOrder);
-    Buffer buf2 = reg2.asBuffer().region(0, bytes, nonNativeOrder);
+    Memory reg2 = nnreg.region(0, bytes, BaseState.nonNativeCpuByteOrder);
+    Buffer buf2 = reg2.asBuffer().region(0, bytes, BaseState.nonNativeCpuByteOrder);
     Buffer buf3 = buf2.duplicate();
 
     assertFalse((mem.getTypeId() & REGION) > 0);
@@ -171,7 +169,7 @@ public class SpecificLeafTest {
     assertFalse(mem2.isBufferType());
     assertFalse(mem2.isDuplicateType());
 
-    Buffer buf3 = buf1.duplicate(Util.nonNativeOrder);
+    Buffer buf3 = buf1.duplicate(BaseState.nonNativeCpuByteOrder);
     assertTrue(buf3.isRegionType());
     assertTrue(buf3.isBufferType());
     assertTrue(buf3.isDuplicateType());
diff --git a/src/test/java/org/apache/datasketches/memory/UtilTest.java b/src/test/java/org/apache/datasketches/memory/UtilTest.java
index 52f747f..13ad314 100644
--- a/src/test/java/org/apache/datasketches/memory/UtilTest.java
+++ b/src/test/java/org/apache/datasketches/memory/UtilTest.java
@@ -147,12 +147,6 @@ public class UtilTest {
     }
   }
 
-  @Test(expectedExceptions = IllegalArgumentException.class)
-  public void checkByteOrderNull() {
-    Util.isNativeOrder(null);
-    fail();
-  }
-
   @Test
   public void printlnTest() {
     println("PRINTING: "+this.getClass().getName());
diff --git a/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java b/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java
index 469eec4..abb615c 100644
--- a/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java
@@ -227,7 +227,7 @@ public class WritableBufferImplTest {
     try (WritableHandle wrh = WritableMemory.allocateDirect(memCapacity)) {
       WritableMemory wmem = wrh.get();
       WritableBuffer wbuf = wmem.asWritableBuffer();
-      wbuf.writableRegion(1, 64, wbuf.getByteOrder()); //wrong!
+      wbuf.writableRegion(1, 64, wbuf.getTypeByteOrder()); //wrong!
     }
   }
 
@@ -549,13 +549,13 @@ public class WritableBufferImplTest {
     ByteBuffer bb = ByteBuffer.allocate(64);
     WritableBuffer wbuf = WritableBuffer.wrap(bb);
     @SuppressWarnings("unused")
-    WritableBuffer wreg = wbuf.writableRegion(0, 1, wbuf.getByteOrder());
+    WritableBuffer wreg = wbuf.writableRegion(0, 1, wbuf.getTypeByteOrder());
 
     try {
       Buffer buf = Buffer.wrap(bb);
       wbuf = (WritableBuffer) buf;
       @SuppressWarnings("unused")
-      WritableBuffer wreg2 = wbuf.writableRegion(0, 1, wbuf.getByteOrder());
+      WritableBuffer wreg2 = wbuf.writableRegion(0, 1, wbuf.getTypeByteOrder());
       Assert.fail();
     } catch (ReadOnlyException expected) {
       // ignore
@@ -566,7 +566,7 @@ public class WritableBufferImplTest {
   public void checkZeroBuffer() {
     WritableMemory wmem = WritableMemory.allocate(8);
     WritableBuffer wbuf = wmem.asWritableBuffer();
-    WritableBuffer reg = wbuf.writableRegion(0, 0, wbuf.getByteOrder());
+    WritableBuffer reg = wbuf.writableRegion(0, 0, wbuf.getTypeByteOrder());
     assertEquals(reg.getCapacity(), 0);
   }
 
@@ -574,7 +574,7 @@ public class WritableBufferImplTest {
   public void checkDuplicateNonNative() {
     WritableMemory wmem = WritableMemory.allocate(64);
     wmem.putShort(0, (short) 1);
-    Buffer buf = wmem.asWritableBuffer().duplicate(Util.nonNativeOrder);
+    Buffer buf = wmem.asWritableBuffer().duplicate(BaseState.nonNativeCpuByteOrder);
     assertEquals(buf.getShort(0), 256);
   }
 
diff --git a/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java b/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java
index 429afb4..e30d546 100644
--- a/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java
@@ -699,7 +699,7 @@ public class WritableMemoryImplTest {
   public void checkAsBufferNonNative() {
     WritableMemory wmem = WritableMemory.allocate(64);
     wmem.putShort(0, (short) 1);
-    Buffer buf = wmem.asBuffer(Util.nonNativeOrder);
+    Buffer buf = wmem.asBuffer(BaseState.nonNativeCpuByteOrder);
     assertEquals(buf.getShort(0), 256);
   }
 
diff --git a/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java b/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java
index 28be3f4..3d2444c 100644
--- a/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java
@@ -36,15 +36,15 @@ public class WritableMemoryTest {
   public void wrapBigEndian() {
     ByteBuffer bb = ByteBuffer.allocate(64); //big endian
     WritableMemory wmem = WritableMemory.wrap(bb);
-    assertEquals(wmem.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(wmem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
   public void wrapBigEndian2() {
     ByteBuffer bb = ByteBuffer.allocate(64);
     WritableBuffer wbuf = WritableBuffer.wrap(bb);
-    assertFalse(wbuf.isNativeOrder());
-    assertEquals(wbuf.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertFalse(wbuf.getTypeByteOrder() == BaseState.nativeCpuByteOrder);
+    assertEquals(wbuf.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
   }
 
   @Test
@@ -58,9 +58,9 @@ public class WritableMemoryTest {
   @Test
   public void allocateWithByteOrder() {
     WritableMemory wmem = WritableMemory.allocate(64, ByteOrder.BIG_ENDIAN);
-    assertEquals(wmem.getByteOrder(), ByteOrder.BIG_ENDIAN);
+    assertEquals(wmem.getTypeByteOrder(), ByteOrder.BIG_ENDIAN);
     wmem = WritableMemory.allocate(64, ByteOrder.LITTLE_ENDIAN);
-    assertEquals(wmem.getByteOrder(), ByteOrder.LITTLE_ENDIAN);
+    assertEquals(wmem.getTypeByteOrder(), ByteOrder.LITTLE_ENDIAN);
   }
 
   @Test
@@ -165,11 +165,13 @@ public class WritableMemoryTest {
   @Test
   public void checkWrapWithBO() {
     WritableMemory wmem = WritableMemory.wrap(new byte[0], ByteOrder.BIG_ENDIAN);
-    assertTrue(wmem.isNativeOrder()); //for ZeroSizeMemory
-    println("" + wmem.isNativeOrder());
+    boolean nativeBO = wmem.getTypeByteOrder() == BaseState.nativeCpuByteOrder;
+    assertTrue(nativeBO); //remains true for ZeroSizeMemory
+    println("" + nativeBO);
     wmem = WritableMemory.wrap(new byte[8], ByteOrder.BIG_ENDIAN);
-    assertFalse(wmem.isNativeOrder());
-    println("" + wmem.isNativeOrder());
+    nativeBO = wmem.getTypeByteOrder() == BaseState.nativeCpuByteOrder;
+    assertFalse(nativeBO);
+    println("" + nativeBO);
   }
 
   @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org