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

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


The following commit(s) were added to refs/heads/frank_grimes_java-21-ffm by 
this push:
     new f7ab4f2  Refactored method params so Arena is last param.
f7ab4f2 is described below

commit f7ab4f2f1f9afc60f7fada228075972591985586
Author: Lee Rhodes <[email protected]>
AuthorDate: Sat Nov 23 14:22:50 2024 -0800

    Refactored method params so Arena is last param.
---
 .../memory/DefaultMemoryRequestServer.java         |  4 +--
 .../org/apache/datasketches/memory/Memory.java     | 16 +++++----
 .../datasketches/memory/MemoryRequestServer.java   |  3 +-
 .../org/apache/datasketches/memory/Resource.java   |  7 ++--
 .../apache/datasketches/memory/WritableMemory.java | 21 +++++++-----
 .../memory/internal/NativeWritableBufferImpl.java  |  2 +-
 .../memory/internal/NativeWritableMemoryImpl.java  |  6 ++--
 .../internal/NonNativeWritableBufferImpl.java      |  6 ++--
 .../internal/NonNativeWritableMemoryImpl.java      |  6 ++--
 .../memory/internal/PositionalImpl.java            |  6 ++--
 .../datasketches/memory/internal/ResourceImpl.java | 13 +++----
 .../memory/internal/WritableBufferImpl.java        |  8 ++---
 .../memory/internal/WritableMemoryImpl.java        | 30 ++++++++--------
 .../internal/AllocateDirectMapMemoryTest.java      | 10 +++---
 .../memory/internal/AllocateDirectMemoryTest.java  |  8 ++---
 .../AllocateDirectWritableMapMemoryTest.java       |  8 ++---
 .../datasketches/memory/internal/Buffer2Test.java  |  2 +-
 .../memory/internal/BufferInvariantsTest.java      |  4 +--
 .../datasketches/memory/internal/BufferTest.java   |  8 ++---
 .../memory/internal/CommonBufferTest.java          | 10 +++---
 .../memory/internal/CommonMemoryTest.java          | 12 +++----
 .../memory/internal/CopyMemoryOverlapTest.java     |  4 +--
 .../memory/internal/CopyMemoryTest.java            |  2 +-
 .../internal/ExampleMemoryRequestServerTest.java   |  4 +--
 .../memory/internal/IgnoredArrayOverflowTest.java  |  4 +--
 .../memory/internal/InvalidAllocationTest.java     |  4 +--
 .../datasketches/memory/internal/LeafImplTest.java |  4 +--
 .../memory/internal/MemoryReadWriteSafetyTest.java |  6 ++--
 .../datasketches/memory/internal/MemoryTest.java   | 10 +++---
 .../memory/internal/MemoryWriteToTest.java         |  2 +-
 .../memory/internal/MurmurHash3v3Test.java         |  2 +-
 .../internal/NativeWritableBufferImplTest.java     | 16 ++++-----
 .../internal/NativeWritableMemoryImplTest.java     | 40 +++++++++++-----------
 .../memory/internal/SpecificLeafTest.java          |  2 +-
 .../memory/internal/WritableDirectCopyTest.java    | 24 ++++++-------
 35 files changed, 161 insertions(+), 153 deletions(-)

diff --git 
a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java 
b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
index 586a823..0bcbd34 100644
--- 
a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
+++ 
b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
@@ -68,7 +68,7 @@ public final class DefaultMemoryRequestServer implements 
MemoryRequestServer {
     }
 
     if (offHeap) {
-      newWmem = WritableMemory.allocateDirect(arena, newCapacityBytes, 8, 
order, this);
+      newWmem = WritableMemory.allocateDirect(newCapacityBytes, 8, order, 
this, arena);
     }
     else { //On-heap
       if (newCapacityBytes > Integer.MAX_VALUE) {
@@ -88,7 +88,7 @@ public final class DefaultMemoryRequestServer implements 
MemoryRequestServer {
   public void requestClose(
       final WritableMemory memToClose,
       final WritableMemory newMemory) {
-    //make this operation idempotent.
+    //try to make this operation idempotent.
     if (memToClose.isCloseable()) { memToClose.close(); }
   }
 
diff --git a/src/main/java/org/apache/datasketches/memory/Memory.java 
b/src/main/java/org/apache/datasketches/memory/Memory.java
index fe0dfce..d19e21a 100644
--- a/src/main/java/org/apache/datasketches/memory/Memory.java
+++ b/src/main/java/org/apache/datasketches/memory/Memory.java
@@ -73,10 +73,11 @@ public interface Memory extends Resource {
   /**
    * Maps the given file into <i>Memory</i> for read operations
    * Calling this method is equivalent to calling
-   * {@link #map(Arena, File, long, long, ByteOrder)
+   * {@link #map(File, long, long, ByteOrder, Arena)
    * map(file, 0, file.length(), scope, ByteOrder.nativeOrder())}.
-   * @param arena the given arena. It must be non-null.
    * @param file the given file to map. It must be non-null with a 
non-negative length and readable.
+   * @param arena the given arena. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return <i>Memory</i> for managing the mapped memory.
    * @throws IllegalArgumentException if path is not associated with the 
default file system.
    * @throws IllegalStateException if scope has been already closed, or if 
access occurs from a thread other than the thread owning scope.
@@ -84,17 +85,18 @@ public interface Memory extends Resource {
    * @throws SecurityException If a security manager is installed and it 
denies an unspecified permission
    * required by the implementation.
    */
-  static Memory map(Arena arena, File file) throws IOException {
-    return map(arena, file, 0, file.length(), ByteOrder.nativeOrder());
+  static Memory map(File file, Arena arena) throws IOException {
+    return map(file, 0, file.length(), ByteOrder.nativeOrder(), arena);
   }
 
   /**
    * Maps the specified portion of the given file into <i>Memory</i> for read 
operations.
-   * @param arena the given arena. It must be non-null.
    * @param file the given file to map. It must be non-null,readable and 
length &ge; 0.
    * @param fileOffsetBytes the position in the given file in bytes. It must 
not be negative.
    * @param capacityBytes the size of the mapped memory. It must not be 
negative..
    * @param byteOrder the byte order to be used.  It must be non-null.
+   * @param arena the given arena. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return <i>Memory</i> for managing the mapped memory.
    * @throws IllegalArgumentException if path is not associated with the 
default file system.
    * @throws IllegalStateException if scope has been already closed, or if 
access occurs from a thread other than the thread owning scope.
@@ -103,11 +105,11 @@ public interface Memory extends Resource {
    * required by the implementation.
    */
   static Memory map(
-      Arena arena,
       File file,
       long fileOffsetBytes,
       long capacityBytes,
-      ByteOrder byteOrder) throws IOException {
+      ByteOrder byteOrder,
+      Arena arena) throws IOException {
     return WritableMemoryImpl.wrapMap(file, fileOffsetBytes, capacityBytes, 
byteOrder, true, arena);
   }
 
diff --git 
a/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java 
b/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java
index 24b5243..7c9fc67 100644
--- a/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java
+++ b/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java
@@ -52,8 +52,7 @@ public interface MemoryRequestServer {
    * @param currentWritableMemory the current writableMemory of the client. It 
must be non-null.
    * @param newCapacityBytes The capacity being requested. It must be &gt; the 
capacity of the currentWritableMemory.
    * @param arena the Arena to be used for the newly allocated memory. It must 
be non-null.
-   * Typically use <i>Arena.ofConfined()</i>.
-   * Warning: specifying a <i>Arena.ofShared()</i> is not supported.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return new WritableMemory with the requested capacity.
    */
   WritableMemory request(
diff --git a/src/main/java/org/apache/datasketches/memory/Resource.java 
b/src/main/java/org/apache/datasketches/memory/Resource.java
index 529a8bc..05cfc16 100644
--- a/src/main/java/org/apache/datasketches/memory/Resource.java
+++ b/src/main/java/org/apache/datasketches/memory/Resource.java
@@ -46,7 +46,7 @@ public interface Resource extends AutoCloseable {
    * <p>The user can customize the actions of the MemoryRequestServer by
    * implementing the MemoryRequestServer interface and set it using the
    * {@link #setMemoryRequestServer(MemoryRequestServer)} method or optionally 
with the
-   * {@link WritableMemory#allocateDirect(arena, long, long, ByteOrder, 
MemoryRequestServer)} method.</p>
+   * {@link WritableMemory#allocateDirect(long, long, ByteOrder, 
MemoryRequestServer, arena)} method.</p>
    *
    * <p>If the MemoryRequestServer is not set by the user and additional 
memory is needed by the sketch,
    * null will be returned and the sketch will abort.
@@ -116,8 +116,9 @@ public interface Resource extends AutoCloseable {
   void close();
 
   /**
-   * Return true if this resource is closeable.
-   * @return true if this resource is closeable.
+   * Return true if this resource likely to be closeable, but not guaranteed.
+   * There is no way to determine if the specific type of Arena is explicitly 
closeable.
+   * @return true if this resource likely to be closeable.
    */
   boolean isCloseable();
 
diff --git a/src/main/java/org/apache/datasketches/memory/WritableMemory.java 
b/src/main/java/org/apache/datasketches/memory/WritableMemory.java
index 7b79041..9d49220 100644
--- a/src/main/java/org/apache/datasketches/memory/WritableMemory.java
+++ b/src/main/java/org/apache/datasketches/memory/WritableMemory.java
@@ -113,6 +113,7 @@ public interface WritableMemory extends Memory {
    * @param capacityBytes the size of the mapped Memory.
    * @param byteOrder the given <i>ByteOrder</i>. It must be non-null.
    * @param arena the given arena to map. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return a file-mapped WritableMemory.
    * @throws IllegalArgumentException if file is not readable or not writable.
    * @throws IOException if the specified path does not point to an existing 
file, or if some other I/O error occurs.
@@ -138,13 +139,14 @@ public interface WritableMemory extends Memory {
    * <p><b>NOTE:</b> Native/Direct memory acquired may have garbage in it.
    * It is the responsibility of the using application to clear this memory, 
if required,
    * and to call <i>close()</i> when done.</p>
-   *
-   * @param arena the given arena to map. It must be non-null.
    * @param capacityBytes the size of the desired memory in bytes.
+   * @param arena the given arena to map. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
+   *
    * @return WritableMemory for this off-heap, native resource.
    */
-  static WritableMemory allocateDirect(Arena arena, long capacityBytes) {
-    return allocateDirect(arena, capacityBytes, 8, ByteOrder.nativeOrder(), 
new DefaultMemoryRequestServer());
+  static WritableMemory allocateDirect(long capacityBytes, Arena arena) {
+    return allocateDirect(capacityBytes, 8, ByteOrder.nativeOrder(), new 
DefaultMemoryRequestServer(), arena);
   }
 
   /**
@@ -154,22 +156,23 @@ public interface WritableMemory extends Memory {
    * <p><b>NOTE:</b> Native/Direct memory acquired may have garbage in it.
    * It is the responsibility of the using application to clear this memory, 
if required,
    * and to call <i>close()</i> when done.</p>
-   *
-   * @param arena the given arena to map. It must be non-null.
    * @param capacityBytes the size of the desired memory in bytes.
    * @param alignmentBytes requested segment alignment. Typically 1, 2, 4 or 8.
    * @param byteOrder the given <i>ByteOrder</i>.  It must be non-null.
    * @param memReqSvr A user-specified MemoryRequestServer, which may be null.
    * This is a callback mechanism for a user client of direct memory to 
request more memory.
+   * @param arena the given arena to map. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
+   *
    * @return a WritableMemory for this off-heap resource.
    */
   static WritableMemory allocateDirect(
-      Arena arena,
       long capacityBytes,
       long alignmentBytes,
       ByteOrder byteOrder,
-      MemoryRequestServer memReqSvr) {
-    return WritableMemoryImpl.wrapDirect(arena, capacityBytes, alignmentBytes, 
byteOrder, memReqSvr);
+      MemoryRequestServer memReqSvr,
+      Arena arena) {
+    return WritableMemoryImpl.wrapDirect(capacityBytes, alignmentBytes, 
byteOrder, memReqSvr, arena);
   }
 
   //REGIONS
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
 
b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
index fbc0faa..b254398 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java
@@ -51,7 +51,7 @@ final class NativeWritableBufferImpl extends 
WritableBufferImpl {
       final MemorySegment seg,
       final int typeId,
       final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+    super(seg, typeId, memReqSvr, arena);
   }
 
   //PRIMITIVE getX() and getXArray()
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
 
b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
index 9b43f91..6025ed5 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java
@@ -35,11 +35,11 @@ final class NativeWritableMemoryImpl extends 
WritableMemoryImpl {
 
   //Pass-through constructor
   NativeWritableMemoryImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
   }
 
   ///PRIMITIVE getX() and getXArray()
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
 
b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
index 93409ed..b9ab430 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java
@@ -55,11 +55,11 @@ final class NonNativeWritableBufferImpl extends 
WritableBufferImpl {
 
   //Pass-through ctor
   NonNativeWritableBufferImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
   }
 
   //PRIMITIVE getX() and getXArray()
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
 
b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
index eb8b8cf..bcd3287 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java
@@ -42,11 +42,11 @@ final class NonNativeWritableMemoryImpl extends 
WritableMemoryImpl {
 
   //Pass-through ctor
   NonNativeWritableMemoryImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
   }
 
   ///PRIMITIVE getX() and getXArray()
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java 
b/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java
index 94ddcde..914ce32 100644
--- a/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java
@@ -52,11 +52,11 @@ abstract class PositionalImpl extends ResourceImpl 
implements Positional {
 
   //Pass-through constructor
   PositionalImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
     capacity = end = seg.byteSize();
   }
 
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java 
b/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java
index 2da6253..957a444 100644
--- a/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java
+++ b/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java
@@ -106,16 +106,17 @@ abstract class ResourceImpl implements Resource {
 
   /**
    * Root constructor.
-   * @param arena the given Arena, or null if an on-heap MemorySegment.
    * @param seg the given, one and only one MemorySegment
    * @param typeId the given typeId
    * @param memReqSvr the given MemoryRequestServer, or null.
+   * @param arena the given Arena, or null if an on-heap MemorySegment.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    */
-  ResourceImpl(final Arena arena, final MemorySegment seg, final int typeId, 
final MemoryRequestServer memReqSvr) {
-    this.arena = arena;
+  ResourceImpl(final MemorySegment seg, final int typeId, final 
MemoryRequestServer memReqSvr, final Arena arena) {
     this.seg = seg;
     this.typeId = typeId;
     this.memReqSvr = memReqSvr;
+    this.arena = arena;
   }
 
   //MemoryReqestServer logic
@@ -253,7 +254,7 @@ abstract class ResourceImpl implements Resource {
     if (nativeBOType) {
       wbuf = new NativeWritableBufferImpl(null, segment, type, memReqSvr2);
     } else { //non-native BO
-      wbuf = new NonNativeWritableBufferImpl(null, segment, type, memReqSvr2);
+      wbuf = new NonNativeWritableBufferImpl(segment, type, memReqSvr2, null);
     }
     return wbuf;
   }
@@ -268,9 +269,9 @@ abstract class ResourceImpl implements Resource {
     final MemoryRequestServer memReqSvr2 = (byteBufferType || mapType) ? null 
: memReqSvr;
     final WritableMemory wmem;
     if (nativeBOType) {
-      wmem = new NativeWritableMemoryImpl(null, segment, type, memReqSvr2);
+      wmem = new NativeWritableMemoryImpl(segment, type, memReqSvr2, null);
     } else { //non-native BO
-      wmem = new NonNativeWritableMemoryImpl(null, segment, type, memReqSvr2);
+      wmem = new NonNativeWritableMemoryImpl(segment, type, memReqSvr2, null);
     }
     return wmem;
   }
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java 
b/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
index 9ce84de..7b448c3 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
@@ -53,11 +53,11 @@ public abstract class WritableBufferImpl extends 
PositionalImpl implements Writa
 
   //Pass-through constructor
   WritableBufferImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
   }
 
   //NO WRAP HEAP ARRAY RESOURCE
@@ -101,7 +101,7 @@ public abstract class WritableBufferImpl extends 
PositionalImpl implements Writa
     final WritableBuffer wbuf;
     if (byteOrder == NON_NATIVE_BYTE_ORDER) {
       type |= NONNATIVE_BO;
-      wbuf = new NonNativeWritableBufferImpl(null, seg, type, memReqSvr);
+      wbuf = new NonNativeWritableBufferImpl(seg, type, memReqSvr, null);
     } else {
       wbuf = new NativeWritableBufferImpl(null, seg, type, memReqSvr);
     }
diff --git 
a/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java 
b/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
index 60a7d5a..aa06b2b 100644
--- 
a/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
+++ 
b/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
@@ -51,11 +51,11 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
 
   //Pass-through constructor
   WritableMemoryImpl(
-      final Arena arena,
       final MemorySegment seg,
       final int typeId,
-      final MemoryRequestServer memReqSvr) {
-    super(arena, seg, typeId, memReqSvr);
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
+    super(seg, typeId, memReqSvr, arena);
   }
 
   //WRAP HEAP ARRAY RESOURCE
@@ -76,9 +76,9 @@ public abstract class WritableMemoryImpl extends ResourceImpl 
implements Writabl
         | (seg.isReadOnly() ? READONLY : 0);
     if (byteOrder == NON_NATIVE_BYTE_ORDER) {
       type |= NONNATIVE_BO;
-      return new NonNativeWritableMemoryImpl(null, seg, type, memReqSvr);
+      return new NonNativeWritableMemoryImpl(seg, type, memReqSvr, null);
     }
-    return new NativeWritableMemoryImpl(null, seg, type, memReqSvr);
+    return new NativeWritableMemoryImpl(seg, type, memReqSvr, null);
   }
 
   //BYTE BUFFER RESOURCE
@@ -124,9 +124,9 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
     final WritableMemory wmem;
     if (byteOrder == NON_NATIVE_BYTE_ORDER) {
       type |= NONNATIVE_BO;
-      wmem = new NonNativeWritableMemoryImpl(null, seg, type, memReqSvr);
+      wmem = new NonNativeWritableMemoryImpl(seg, type, memReqSvr, null);
     } else {
-      wmem = new NativeWritableMemoryImpl(null, seg, type, memReqSvr);
+      wmem = new NativeWritableMemoryImpl(seg, type, memReqSvr, null);
     }
     return wmem;
   }
@@ -145,6 +145,7 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
    * @param byteOrder the given <i>ByteOrder</i>. It must be non-null.
    * @param localReadOnly true if read-only is being imposed locally, even if 
the given file is writable..
    * @param arena the given arena. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return a <i>WritableMemory</i>
    * @throws IllegalArgumentException if file is not readable.
    * @throws IOException if mapping is not successful.
@@ -185,8 +186,8 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
       final MemorySegment seg = fileChannel.map(mapMode, fileOffsetBytes, 
capacityBytes, arena);
 
       return nativeBOType
-          ? new NativeWritableMemoryImpl(arena, seg, type, null)
-          : new NonNativeWritableMemoryImpl(arena, seg, type, null);
+          ? new NativeWritableMemoryImpl(seg, type, null, arena)
+          : new NonNativeWritableMemoryImpl(seg, type, null, arena);
     }
   }
 
@@ -194,21 +195,22 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
 
   /**
    * The static constructor that chooses the correct Direct leaf node based on 
the byte order.
-   * @param arena the given arena. It must be non-null.
    * @param capacityBytes the requested capacity for the Direct (off-heap) 
memory.  It must be &ge; 0.
    * @param alignmentBytes requested segment alignment. Typically 1, 2, 4 or 8.
    * Warning: specifying a <i>Arena.ofShared()</i> is not supported.
    * @param byteOrder the byte order to be used.  It must be non-null.
    * @param memReqSvr A user-specified MemoryRequestServer, which may be null.
    * This is a callback mechanism for a user client of direct memory to 
request more memory.
+   * @param arena the given arena. It must be non-null.
+   * Warning: This class is not thread-safe. Specifying an Arena that allows 
multiple threads is not supported.
    * @return WritableMemory
    */
   public static WritableMemory wrapDirect(
-      final Arena arena,
       final long capacityBytes,
       final long alignmentBytes,
       final ByteOrder byteOrder,
-      final MemoryRequestServer memReqSvr) {
+      final MemoryRequestServer memReqSvr,
+      final Arena arena) {
     Objects.requireNonNull(arena, "Arena must be non-null");
     Objects.requireNonNull(byteOrder, "ByteOrder must be non-null");
     final MemorySegment seg = arena.allocate(capacityBytes, alignmentBytes);
@@ -216,8 +218,8 @@ public abstract class WritableMemoryImpl extends 
ResourceImpl implements Writabl
     final int type = MEMORY | DIRECT
         | (nativeBOType ? NATIVE_BO : NONNATIVE_BO);
     return nativeBOType
-        ? new NativeWritableMemoryImpl(arena, seg, type, memReqSvr)
-        : new NonNativeWritableMemoryImpl(arena, seg, type, memReqSvr);
+        ? new NativeWritableMemoryImpl(seg, type, memReqSvr, arena)
+        : new NonNativeWritableMemoryImpl(seg, type, memReqSvr, arena);
   }
 
   //REGION DERIVED
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
index c2d40f8..64f981e 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java
@@ -42,7 +42,7 @@ public class AllocateDirectMapMemoryTest {
   @Test
   public void simpleMap() throws IOException {
     File file = UtilTest.setGettysburgAddressFileToReadOnly();
-    try (Memory mem = Memory.map(Arena.ofConfined(), file)) {
+    try (Memory mem = Memory.map(file, Arena.ofConfined())) {
       mem.close();
     } //The Try-With-Resources will throw since it is already closed
     catch (IllegalStateException e) { /* OK */ }
@@ -51,7 +51,7 @@ public class AllocateDirectMapMemoryTest {
   @Test
   public void testIllegalArguments() throws IOException {
     File file = getResourceFile("GettysburgAddress.txt");
-    try (Memory mem = Memory.map(Arena.ofConfined(), file, -1, 
Integer.MAX_VALUE, ByteOrder.nativeOrder())) {
+    try (Memory mem = Memory.map(file, -1, Integer.MAX_VALUE, 
ByteOrder.nativeOrder(), Arena.ofConfined())) {
       fail("Failed: test IllegalArgumentException: Position was negative.");
       mem.getCapacity();
     }
@@ -59,7 +59,7 @@ public class AllocateDirectMapMemoryTest {
       //ok
     }
     try (Arena arena = Arena.ofConfined();
-         Memory mem = Memory.map(arena, file, 0, -1, ByteOrder.nativeOrder())) 
{
+         Memory mem = Memory.map(file, 0, -1, ByteOrder.nativeOrder(), arena)) 
{
       fail("Failed: testIllegalArgumentException: Size was negative.");
     } catch (IllegalArgumentException e) {
       //ok
@@ -72,7 +72,7 @@ public class AllocateDirectMapMemoryTest {
     long memCapacity = file.length();
     Memory mem2 = null;
     try {
-      try (Memory mem = Memory.map(Arena.ofConfined(), file, 0, memCapacity, 
ByteOrder.nativeOrder())) {
+      try (Memory mem = Memory.map(file, 0, memCapacity, 
ByteOrder.nativeOrder(), Arena.ofConfined())) {
         mem2 = mem;
         assertEquals(memCapacity, mem.getCapacity());
         mem.close(); //a close inside the TWR block will throw
@@ -88,7 +88,7 @@ public class AllocateDirectMapMemoryTest {
   public void testLoad() throws IOException {
     File file = getResourceFile("GettysburgAddress.txt");
     long memCapacity = file.length();
-    try (Memory mem = Memory.map(Arena.ofConfined(), file, 0, memCapacity, 
ByteOrder.nativeOrder())) {
+    try (Memory mem = Memory.map(file, 0, memCapacity, 
ByteOrder.nativeOrder(), Arena.ofConfined())) {
       mem.load();
       //assertTrue(mem.isLoaded()); //incompatible with Windows
       assertTrue(mem.isAlive());
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
index 4fb790a..7a0b4ef 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java
@@ -39,7 +39,7 @@ public class AllocateDirectMemoryTest {
   public void simpleAllocateDirect() {
     int longs = 32;
     WritableMemory wMem2 = null;
-    try (WritableMemory wMem = 
WritableMemory.allocateDirect(Arena.ofConfined(), longs << 3)) {
+    try (WritableMemory wMem = WritableMemory.allocateDirect(longs << 3, 
Arena.ofConfined())) {
       wMem2 = wMem;
       for (int i = 0; i<longs; i++) {
         wMem.putLong(i << 3, i);
@@ -56,7 +56,7 @@ public class AllocateDirectMemoryTest {
   public void checkDefaultMemoryRequestServer() {
     int longs1 = 32;
     int bytes1 = longs1 << 3;
-    try (WritableMemory origWmem = 
WritableMemory.allocateDirect(Arena.ofConfined(), bytes1)) {
+    try (WritableMemory origWmem = WritableMemory.allocateDirect(bytes1, 
Arena.ofConfined())) {
       for (int i = 0; i < longs1; i++) { //puts data in origWmem
         origWmem.putLong(i << 3, i);
         assertEquals(origWmem.getLong(i << 3), i);
@@ -81,7 +81,7 @@ public class AllocateDirectMemoryTest {
   @Test
   public void checkNonNativeDirect() {
     MemoryRequestServer myMemReqSvr = Resource.defaultMemReqSvr;
-    try (WritableMemory wmem = 
WritableMemory.allocateDirect(Arena.ofConfined(), 128, 8, 
NON_NATIVE_BYTE_ORDER, myMemReqSvr)) {
+    try (WritableMemory wmem = WritableMemory.allocateDirect(128, 8, 
NON_NATIVE_BYTE_ORDER, myMemReqSvr, Arena.ofConfined())) {
       wmem.putChar(0, (char) 1);
       assertEquals(wmem.getByte(1), (byte) 1);
     }
@@ -90,7 +90,7 @@ public class AllocateDirectMemoryTest {
   @Test
   public void checkExplicitCloseNoTWR() {
     final long cap = 128;
-    WritableMemory wmem = WritableMemory.allocateDirect(Arena.ofConfined(), 
cap);
+    WritableMemory wmem = WritableMemory.allocateDirect(cap, 
Arena.ofConfined());
     wmem.close(); //explicit close
   }
 
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java
index 4d9f056..8e6f3b7 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java
@@ -60,7 +60,7 @@ public class AllocateDirectWritableMapMemoryTest {
       UnsupportedOperationException, IOException, SecurityException {
     File file = getResourceFile("GettysburgAddress.txt");
 
-    try (Memory mem = Memory.map(Arena.ofConfined(), file)) {
+    try (Memory mem = Memory.map(file, Arena.ofConfined())) {
       byte[] byteArr = new byte[(int)mem.getCapacity()];
       mem.getByteArray(0, byteArr, 0, byteArr.length);
       String text = new String(byteArr, UTF_8);
@@ -89,7 +89,7 @@ public class AllocateDirectWritableMapMemoryTest {
     WritableMemory srcMem = null;
     try (Arena arena = Arena.ofConfined()) { //this scope manages two Memory 
objects
       dstMem = WritableMemory.writableMap(file, 0, numBytes, 
ByteOrder.nativeOrder(), arena);
-      srcMem = WritableMemory.allocateDirect(arena, numBytes, 8, 
ByteOrder.nativeOrder(), memReqSvr);
+      srcMem = WritableMemory.allocateDirect(numBytes, 8, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       //load source with consecutive longs
       for (long i = 0; i < numLongs; i++) {
@@ -129,7 +129,7 @@ public class AllocateDirectWritableMapMemoryTest {
       IOException, SecurityException {
     File dummy = createTempFile("dummy", ".txt" , ""); //zero length
     try (Arena arena = Arena.ofConfined()) {
-      Memory.map(arena, dummy, 0, dummy.length(), ByteOrder.nativeOrder());
+      Memory.map(dummy, 0, dummy.length(), ByteOrder.nativeOrder(), arena);
     }
   }
 
@@ -171,7 +171,7 @@ public class AllocateDirectWritableMapMemoryTest {
     Memory mem = null;
     WritableMemory wmem = null;
     try (Arena arena = Arena.ofConfined()) {
-      mem = Memory.map(arena, origFile, 0, origBytes, ByteOrder.nativeOrder());
+      mem = Memory.map(origFile, 0, origBytes, ByteOrder.nativeOrder(), arena);
       mem.load();
       //assertTrue(mem.isLoaded()); //incompatible with Windows
       //confirm orig string
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java 
b/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
index 5cdaed0..b1daf45 100644
--- a/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
+++ b/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java
@@ -400,7 +400,7 @@ public class Buffer2Test {
   public void checkIndependence() {
     int cap = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, cap, 8, 
ByteOrder.nativeOrder(), null);
+      WritableMemory wmem = WritableMemory.allocateDirect(cap, 8, 
ByteOrder.nativeOrder(), null, arena);
       WritableBuffer wbuf1 = wmem.asWritableBuffer();
       WritableBuffer wbuf2 = wmem.asWritableBuffer();
       assertFalse(wbuf1 == wbuf2);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java
index 598d8cc..194e0fa 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java
@@ -167,7 +167,7 @@ public class BufferInvariantsTest {
   @Test
   public void checkLimitsDirect() throws Exception {
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, 100, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(100, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       Buffer buf = wmem.asBuffer();
       buf.setStartPositionEnd(40, 45, 50);
       buf.setStartPositionEnd(0, 0, 100);
@@ -238,7 +238,7 @@ public class BufferInvariantsTest {
   public void testBufDirect() throws Exception {
     int n = 25;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, n, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(n, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = wmem.asWritableBuffer();
       for (byte i = 0; i < n; i++) { buf.putByte(i); }
       buf.setPosition(0);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
index 2961453..4571fbe 100644
--- a/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
+++ b/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java
@@ -42,7 +42,7 @@ public class BufferTest {
   public void checkDirectRoundTrip() throws Exception {
     int n = 1024; //longs
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, n * 8, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(n * 8, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       for (int i = 0; i < n; i++) {
         wbuf.putLong(i);
@@ -285,7 +285,7 @@ public class BufferTest {
   public void checkParentUseAfterFree() throws Exception {
     int bytes = 64 * 8;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       wmem.close();
       //with -ea assert: Memory not alive.
@@ -298,7 +298,7 @@ public class BufferTest {
   public void checkRegionUseAfterFree() throws Exception {
     int bytes = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       Buffer region = wmem.asBuffer().region();
       wmem.close();
       //with -ea assert: Memory not alive.
@@ -310,7 +310,7 @@ public class BufferTest {
   @Test
   public void checkCheckNotAliveAfterTWR() {
     Buffer buf;
-    try (WritableMemory wmem = 
WritableMemory.allocateDirect(Arena.ofConfined(), 100)) {
+    try (WritableMemory wmem = WritableMemory.allocateDirect(100, 
Arena.ofConfined())) {
       buf = wmem.asBuffer();
     }
     try {
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java
index 69d61bb..02fbf50 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java
@@ -36,7 +36,7 @@ public class CommonBufferTest {
   public void checkSetGet() throws Exception {
     int memCapacity = 60; //must be at least 60
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = mem.asWritableBuffer();
       assertEquals(buf.getCapacity(), memCapacity);
       setGetTests(buf);
@@ -138,7 +138,7 @@ public class CommonBufferTest {
   public void checkSetGetArrays() throws Exception {
     int memCapacity = 32;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = mem.asWritableBuffer();
       assertEquals(buf.getCapacity(), memCapacity);
       setGetArraysTests(buf);
@@ -223,7 +223,7 @@ public class CommonBufferTest {
   public void checkSetGetPartialArraysWithOffset() throws Exception {
     int memCapacity = 32;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = mem.asWritableBuffer();
       assertEquals(buf.getCapacity(), memCapacity);
       setGetPartialArraysWithOffsetTests(buf);
@@ -308,7 +308,7 @@ public class CommonBufferTest {
   public void checkSetClearMemoryRegions() throws Exception {
     int memCapacity = 64; //must be 64
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = mem.asWritableBuffer();
       assertEquals(buf.getCapacity(), memCapacity);
 
@@ -397,7 +397,7 @@ public class CommonBufferTest {
   public void checkToHexStringAllMem() throws Exception {
     int memCapacity = 48; //must be 48
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer buf = mem.asWritableBuffer();
       assertEquals(buf.getCapacity(), memCapacity);
       toHexStringAllMemTests(buf); //requires println enabled to visually check
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java
index 50c8bb5..07a696f 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java
@@ -41,7 +41,7 @@ public class CommonMemoryTest {
   public void checkSetGet() throws Exception {
     int memCapacity = 16; //must be at least 8
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertEquals(mem.getCapacity(), memCapacity);
       setGetTests(mem);
     }
@@ -93,7 +93,7 @@ public class CommonMemoryTest {
   public void checkSetGetArrays() throws Exception {
     int memCapacity = 32;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertEquals(memCapacity, mem.getCapacity());
       setGetArraysTests(mem);
     }
@@ -163,7 +163,7 @@ public class CommonMemoryTest {
   public void checkSetGetPartialArraysWithOffset() throws Exception {
     int memCapacity = 32;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertEquals(memCapacity, mem.getCapacity());
       setGetPartialArraysWithOffsetTests(mem);
     }
@@ -233,7 +233,7 @@ public class CommonMemoryTest {
   public void checkSetClearIsBits() throws Exception {
     int memCapacity = 8;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertEquals(memCapacity, mem.getCapacity());
       mem.clear();
       setClearIsBitsTests(mem);
@@ -274,7 +274,7 @@ public class CommonMemoryTest {
   public void checkSetClearMemoryRegions() throws Exception {
     int memCapacity = 64; //must be 64
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       setClearMemoryRegionsTests(mem); //requires println enabled to visually 
check
       for (int i = 0; i < memCapacity; i++) {
@@ -345,7 +345,7 @@ public class CommonMemoryTest {
   public void checkToHexStringAllMem() throws Exception {
     int memCapacity = 48; //must be 48
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       toHexStringAllMemTests(mem); //requires println enabled to visually check
     }
   }
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java
index a8f3e28..b278f0b 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java
@@ -98,7 +98,7 @@ public class CopyMemoryOverlapTest {
     println("Backing longs: " + backingLongs + "\t bytes: " + backingBytes);
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory backingMem = WritableMemory.allocateDirect(arena, 
backingBytes,  1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory backingMem = WritableMemory.allocateDirect(backingBytes, 
1,  ByteOrder.nativeOrder(), memReqSvr, arena);
       fill(backingMem); //fill mem with 0 thru copyLongs -1
       //listMem(backingMem, "Original");
       backingMem.copyTo(fromOffsetBytes, backingMem, toOffsetBytes, copyBytes);
@@ -138,7 +138,7 @@ public class CopyMemoryOverlapTest {
     println("Backing longs: " + backingLongs + "\t bytes: " + backingBytes);
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory backingMem = WritableMemory.allocateDirect(arena, 
backingBytes, 1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory backingMem = WritableMemory.allocateDirect(backingBytes, 
1, ByteOrder.nativeOrder(), memReqSvr, arena);
       fill(backingMem); //fill mem with 0 thru copyLongs -1
       //listMem(backingMem, "Original");
       WritableMemory reg1 = backingMem.writableRegion(fromOffsetBytes, 
copyBytes);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java
index ef39a9b..f50cabe 100644
--- a/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java
@@ -149,7 +149,7 @@ public class CopyMemoryTest {
   }
 
   private static WritableMemory genWmem(int longs, boolean empty) {
-    WritableMemory wmem = WritableMemory.allocateDirect(Arena.ofConfined(), 
longs << 3, 1, ByteOrder.nativeOrder(), memReqSvr);
+    WritableMemory wmem = WritableMemory.allocateDirect(longs << 3, 1, 
ByteOrder.nativeOrder(), memReqSvr, Arena.ofConfined());
     if (empty) {
       wmem.clear();
     } else {
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
index 560803f..08a7e76 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java
@@ -53,11 +53,11 @@ public class ExampleMemoryRequestServerTest {
 
     //Create the initial working memory for the client
     WritableMemory workingMem = WritableMemory.allocateDirect(
-      arena,
       workingMemBytes,
       alignmentBytes,
       ByteOrder.nativeOrder(),
-      memReqSvr);
+      memReqSvr,
+      arena);
 
     MemoryHungryClient client = new MemoryHungryClient(workingMem);
     client.process();
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java
index d94cb8a..4cdb736 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java
@@ -33,11 +33,11 @@ public class IgnoredArrayOverflowTest {
   private static final MemoryRequestServer memReqSvr = 
Resource.defaultMemReqSvr;
 
   private WritableMemory memory;
-  private static final long MAX_SIZE = (1L << 10); // use 1L << 31 to test int 
overrange
+  private static final long MAX_SIZE = (1L << 10); // use 1L << 31 to test int 
over range
 
   @BeforeClass
   public void allocate() {
-     memory = WritableMemory.allocateDirect(Arena.ofConfined(), MAX_SIZE, 8L, 
ByteOrder.nativeOrder(), memReqSvr);
+     memory = WritableMemory.allocateDirect(MAX_SIZE, 8L, 
ByteOrder.nativeOrder(), memReqSvr, Arena.ofConfined());
   }
 
   @AfterClass
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/InvalidAllocationTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/InvalidAllocationTest.java
index f63fc87..f2630ca 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/InvalidAllocationTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/InvalidAllocationTest.java
@@ -49,7 +49,7 @@ public class InvalidAllocationTest {
     mem3.region(0, 0);
     WritableMemory nullMem = null;
     try (Arena arena = Arena.ofConfined()) { //Invalid allocation size : -1
-      nullMem = WritableMemory.allocateDirect(arena, -1, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      nullMem = WritableMemory.allocateDirect(-1, 1, ByteOrder.nativeOrder(), 
memReqSvr, arena);
       Assert.fail();
     } catch (IllegalArgumentException ignore) {
       if (nullMem != null) {
@@ -70,7 +70,7 @@ public class InvalidAllocationTest {
     mem3.region(0, 0);
     WritableMemory nullMem = null;
     try (Arena arena = Arena.ofConfined()) { //Invalid alignment : 3 
-      nullMem = WritableMemory.allocateDirect(arena, 0, 3, 
ByteOrder.nativeOrder(), memReqSvr);
+      nullMem = WritableMemory.allocateDirect(0, 3, ByteOrder.nativeOrder(), 
memReqSvr, arena);
       Assert.fail();
     } catch (IllegalArgumentException ignore) {
       if (nullMem != null) {
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
index 88bbf41..bc65914 100644
--- a/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java
@@ -54,14 +54,14 @@ public class LeafImplTest {
     long cap = 128;
     // Off Heap, Native order, No ByteBuffer, has MemReqSvr
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory memNO = WritableMemory.allocateDirect(arena, cap, 8, NBO, 
myMemReqSvr);
+      WritableMemory memNO = WritableMemory.allocateDirect(cap, 8, NBO, 
myMemReqSvr, arena);
       memNO.putShort(0, (short) 1);
       assertTrue(memNO.isDirect());
       checkCombinations(memNO, off, cap, memNO.isDirect(), NBO, false, true);
     }
     // Off Heap, Non Native order, No ByteBuffer, has MemReqSvr
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory memNNO = WritableMemory.allocateDirect(arena, cap, 8, 
NNBO, myMemReqSvr);
+      WritableMemory memNNO = WritableMemory.allocateDirect(cap, 8, NNBO, 
myMemReqSvr, arena);
       memNNO.putShort(0, (short) 1);
       assertTrue(memNNO.isDirect());
       checkCombinations(memNNO, off, cap, memNNO.isDirect(), NNBO, false, 
true);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java
index 1e2b1f8..db9021e 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java
@@ -196,7 +196,7 @@ public class MemoryReadWriteSafetyTest {
       raf.setLength(8);
       //System.out.println(UtilTest.getFileAttributes(tempFile));
       try (Arena arena = Arena.ofConfined();
-           Memory memory = Memory.map(arena, tempFile)) {
+           Memory memory = Memory.map(tempFile, arena)) {
 
           ((WritableMemory) memory).putInt(0, 1);
       }
@@ -210,7 +210,7 @@ public class MemoryReadWriteSafetyTest {
     tempFile.deleteOnExit();
     new RandomAccessFile(tempFile, "rw").setLength(8);
     try (Arena arena = Arena.ofConfined()) {
-      Memory memory = Memory.map(arena, tempFile, 0, 4, 
ByteOrder.nativeOrder());
+      Memory memory = Memory.map(tempFile, 0, 4, ByteOrder.nativeOrder(), 
arena);
       ((WritableMemory) memory).putInt(0, 1);
     }
   }
@@ -222,7 +222,7 @@ public class MemoryReadWriteSafetyTest {
     try (RandomAccessFile raf = new RandomAccessFile(tempFile, "rw")) {
       raf.setLength(8);
       try (Arena arena = Arena.ofConfined()) {
-        Memory.map(arena, tempFile, 0, 16, ByteOrder.nativeOrder());
+        Memory.map(tempFile, 0, 16, ByteOrder.nativeOrder(), arena);
       }
     }
   }
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
index 350030a..23fd593 100644
--- a/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java
@@ -59,7 +59,7 @@ public class MemoryTest {
   public void checkDirectRoundTrip() throws Exception {
     int n = 1024; //longs
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, n * 8, 1,  
ByteOrder.nativeOrder(), myMemReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(n * 8, 1, 
ByteOrder.nativeOrder(),  myMemReqSvr, arena);
       for (int i = 0; i < n; i++) {
         mem.putLong(i * 8, i);
       }
@@ -355,7 +355,7 @@ public class MemoryTest {
   public void checkParentUseAfterFree() throws Exception {
     int bytes = 64 * 8;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, bytes, 1, 
ByteOrder.nativeOrder(), myMemReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(bytes, 1, 
ByteOrder.nativeOrder(), myMemReqSvr, arena);
       wmem.close();
       wmem.getLong(0); //Already closed
     }
@@ -365,7 +365,7 @@ public class MemoryTest {
   public void checkRegionUseAfterFree() throws Exception {
     int bytes = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, bytes, 1, 
ByteOrder.nativeOrder(), myMemReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(bytes, 1, 
ByteOrder.nativeOrder(), myMemReqSvr, arena);
       Memory region = wmem.region(0L, bytes);
       wmem.close();
       region.getByte(0); //Already closed.
@@ -384,7 +384,7 @@ public class MemoryTest {
       wbuf = wmem.asWritableBuffer();
       assertNull(wbuf.getMemoryRequestServer());
       //OFF HEAP
-      wmem = WritableMemory.allocateDirect(arena, 16, 1, 
ByteOrder.nativeOrder(), myMemReqSvr);  //OFF HEAP
+      wmem = WritableMemory.allocateDirect(16, 1, ByteOrder.nativeOrder(), 
myMemReqSvr, arena);  //OFF HEAP
       assertNotNull(wmem.getMemoryRequestServer());
       wbuf = wmem.asWritableBuffer();
       assertNotNull(wbuf.getMemoryRequestServer());
@@ -404,7 +404,7 @@ public class MemoryTest {
       wbuf = wmem.asWritableBuffer();
       assertNotNull(wbuf.getMemoryRequestServer());
       //OFF HEAP
-      WritableMemory wmem2 = WritableMemory.allocateDirect(arena, 16, 1, 
ByteOrder.nativeOrder(), myMemReqSvr);
+      WritableMemory wmem2 = WritableMemory.allocateDirect(16, 1, 
ByteOrder.nativeOrder(), myMemReqSvr, arena);
       assertNotNull(wmem2.getMemoryRequestServer());
       wbuf = wmem.asWritableBuffer();
       assertNotNull(wbuf.getMemoryRequestServer());
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java
index 2997647..c719277 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java
@@ -60,7 +60,7 @@ public class MemoryWriteToTest {
   @Test
   public void testOffHeap() throws Exception {
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, ((1 << 20) * 
5) + 10, 1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(((1 << 20) * 5) + 10, 
1, ByteOrder.nativeOrder(), memReqSvr, arena);
       testWriteTo(mem.region(0, 0));
       testOffHeap(mem, 7);
       testOffHeap(mem, 1023);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/MurmurHash3v3Test.java 
b/src/test/java/org/apache/datasketches/memory/internal/MurmurHash3v3Test.java
index db48e86..8b8734d 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/MurmurHash3v3Test.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/MurmurHash3v3Test.java
@@ -276,7 +276,7 @@ public class MurmurHash3v3Test {
       out = hash(mem, 0L, 4L, 1L, out);
     } catch (final IllegalArgumentException e) { }
     try (Arena arena = Arena.ofConfined()) {
-      Memory mem = WritableMemory.allocateDirect(arena, 8, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      Memory mem = WritableMemory.allocateDirect(8, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       long[] out = new long[2];
       out = hash(mem, 0L, 4L, 1L, out);
     } catch (Exception ee) {}
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
index 19101c5..a783d9c 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java
@@ -46,7 +46,7 @@ public class NativeWritableBufferImplTest {
   @Test
   public void checkNativeCapacityAndClose() throws Exception {
     int memCapacity = 64;
-    WritableMemory wmem = WritableMemory.allocateDirect(Arena.ofConfined(), 
memCapacity, 1, ByteOrder.nativeOrder(), memReqSvr);
+    WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, Arena.ofConfined());
     WritableBuffer wbuf = wmem.asWritableBuffer();
     assertEquals(wbuf.getCapacity(), memCapacity);
 
@@ -187,7 +187,7 @@ public class NativeWritableBufferImplTest {
   public void checkNativeBaseBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       wbuf.toString("Force Assertion Error", memCapacity, 8, false);
     } catch (IllegalArgumentException e) {
@@ -199,7 +199,7 @@ public class NativeWritableBufferImplTest {
   public void checkNativeSrcArrayBound() throws Exception {
     long memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       byte[] srcArray = { 1, -2, 3, -4 };
       wbuf.putByteArray(srcArray, 0, 5); //wrong!
@@ -212,7 +212,7 @@ public class NativeWritableBufferImplTest {
   public void checkRegionBounds() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       wbuf.writableRegion(1, 64, wbuf.getTypeByteOrder()); //wrong!
     }
@@ -327,7 +327,7 @@ public class NativeWritableBufferImplTest {
     WritableBuffer mem = 
WritableMemory.allocate(memCapacity).asWritableBuffer();
     assertFalse(mem.isDirect());
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       WritableBuffer wbuf = wmem.asWritableBuffer();
       assertTrue(wbuf.isDirect());
     }
@@ -382,9 +382,9 @@ public class NativeWritableBufferImplTest {
     byte[] arr2 = new byte[] {0, 1, 2, 4};
     byte[] arr3 = new byte[] {0, 1, 2, 3, 4};
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, 4, 1, 
ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem2 = WritableMemory.allocateDirect(arena, 4, 1, 
ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem3 = WritableMemory.allocateDirect(arena, 5, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(4, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem2 = WritableMemory.allocateDirect(4, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem3 = WritableMemory.allocateDirect(5, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       mem1.putByteArray(0, arr1, 0, 4);
       mem2.putByteArray(0, arr2, 0, 4);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
index 56352ae..39ae895 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java
@@ -46,11 +46,11 @@ public class NativeWritableMemoryImplTest {
   public void checkNativeCapacityAndClose() throws Exception {
     int memCapacity = 64;
     WritableMemory wmem = WritableMemory.allocateDirect(
-      Arena.ofConfined(),
       memCapacity,
       1,
       ByteOrder.nativeOrder(),
-      memReqSvr);
+      memReqSvr,
+      Arena.ofConfined());
     assertEquals(memCapacity, wmem.getCapacity());
 
     wmem.close();
@@ -190,7 +190,7 @@ public class NativeWritableMemoryImplTest {
   public void checkNativeBaseBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.toString("Force Assertion Error", memCapacity, 8, false);
     } catch (IllegalArgumentException e) {
       //ok
@@ -201,7 +201,7 @@ public class NativeWritableMemoryImplTest {
   public void checkNativeSrcArrayBound() throws Exception {
     long memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       byte[] srcArray = { 1, -2, 3, -4 };
       wmem.putByteArray(0L, srcArray, 0, 5);
     } catch (IndexOutOfBoundsException e) {
@@ -222,7 +222,7 @@ public class NativeWritableMemoryImplTest {
     int memCapacity = 64;
     int half = memCapacity/2;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.clear();
 
       for (int i=0; i<half; i++) { //fill first half
@@ -244,7 +244,7 @@ public class NativeWritableMemoryImplTest {
     int halfBytes = memCapacity / 2;
     int halfLongs = memCapLongs / 2;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.clear();
 
       for (int i=0; i < halfLongs; i++) {
@@ -263,7 +263,7 @@ public class NativeWritableMemoryImplTest {
   public void checkCopyWithinNativeSrcBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.copyTo(32, wmem, 32, 33);  //hit source bound check
       fail("Did Not Catch Assertion Error: source bound");
     }
@@ -276,7 +276,7 @@ public class NativeWritableMemoryImplTest {
   public void checkCopyWithinNativeDstBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.copyTo(0, wmem, 32, 33);  //hit dst bound check
       fail("Did Not Catch Assertion Error: dst bound");
     }
@@ -290,8 +290,8 @@ public class NativeWritableMemoryImplTest {
     int memCapacity = 64;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory wmem2 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory wmem2 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i=0; i < memCapacity; i++) {
         wmem1.putByte(i, (byte) i);
@@ -311,8 +311,8 @@ public class NativeWritableMemoryImplTest {
     int memCapLongs = memCapacity / 8;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory wmem2 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory wmem2 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i=0; i < memCapLongs; i++) {
         wmem1.putLong(i*8, i);
@@ -331,7 +331,7 @@ public class NativeWritableMemoryImplTest {
   public void checkCopyCrossNativeAndByteArray() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i= 0; i < wmem.getCapacity(); i++) {
         wmem.putByte(i, (byte) i);
@@ -352,7 +352,7 @@ public class NativeWritableMemoryImplTest {
     int memCapacity = 128;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i= 0; i < wmem1.getCapacity(); i++) {
         wmem1.putByte(i, (byte) i);
@@ -378,7 +378,7 @@ public class NativeWritableMemoryImplTest {
   public void checkCopyCrossNativeArrayAndHierarchicalRegions() throws 
Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i= 0; i < wmem1.getCapacity(); i++) { //fill with numbers
         wmem1.putByte(i, (byte) i);
@@ -408,7 +408,7 @@ public class NativeWritableMemoryImplTest {
   public void checkRegionBounds() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       wmem.writableRegion(1, 64);
     }
   }
@@ -520,7 +520,7 @@ public class NativeWritableMemoryImplTest {
     try (Arena arena = Arena.ofConfined()) {
       WritableMemory mem = WritableMemory.allocate(memCapacity);
       assertFalse(mem.isDirect());
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertTrue(wmem.isDirect());
     }
   }
@@ -581,9 +581,9 @@ public class NativeWritableMemoryImplTest {
     byte[] arr3 = new byte[] {0, 1, 2, 3, 4};
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, 4, 1, 
ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem2 = WritableMemory.allocateDirect(arena, 4, 1, 
ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem3 = WritableMemory.allocateDirect(arena, 5, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(4, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem2 = WritableMemory.allocateDirect(4, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem3 = WritableMemory.allocateDirect(5, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       mem1.putByteArray(0, arr1, 0, 4);
       mem2.putByteArray(0, arr2, 0, 4);
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java 
b/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
index fa885e7..efb4d5e 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java
@@ -76,7 +76,7 @@ public class SpecificLeafTest {
   public void checkDirectLeafs() throws Exception {
     int bytes = 128;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory wmem = WritableMemory.allocateDirect(arena, bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory wmem = WritableMemory.allocateDirect(bytes, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       assertFalse(((ResourceImpl)wmem).isReadOnly());
       assertTrue(wmem.isDirect());
       assertFalse(wmem.isHeap());
diff --git 
a/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java
 
b/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java
index c39c6d1..2af3cc5 100644
--- 
a/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java
+++ 
b/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java
@@ -44,7 +44,7 @@ public class WritableDirectCopyTest {
     int memCapacity = 64;
     int half = memCapacity / 2;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       mem.clear();
 
       for (int i = 0; i < half; i++) { //fill first half
@@ -66,7 +66,7 @@ public class WritableDirectCopyTest {
     int halfBytes = memCapacity / 2;
     int halfLongs = memCapLongs / 2;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       mem.clear();
 
       for (int i = 0; i < halfLongs; i++) {
@@ -85,7 +85,7 @@ public class WritableDirectCopyTest {
   public void checkCopyWithinNativeOverlap() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       mem.clear();
       //println(mem.toHexString("Clear 64", 0, memCapacity));
 
@@ -101,7 +101,7 @@ public class WritableDirectCopyTest {
   public void checkCopyWithinNativeSrcBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       mem.copyTo(32, mem, 32, 33);  //hit source bound check
       fail("Did Not Catch Assertion Error: source bound");
     } catch (IndexOutOfBoundsException e) {
@@ -113,7 +113,7 @@ public class WritableDirectCopyTest {
   public void checkCopyWithinNativeDstBound() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
       mem.copyTo(0, mem, 32, 33);  //hit dst bound check
       fail("Did Not Catch Assertion Error: dst bound");
     } catch (IndexOutOfBoundsException e) {
@@ -126,8 +126,8 @@ public class WritableDirectCopyTest {
     int memCapacity = 64;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem2 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem2 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i = 0; i < memCapacity; i++) {
         mem1.putByte(i, (byte) i);
@@ -147,8 +147,8 @@ public class WritableDirectCopyTest {
     int memCapLongs = memCapacity / 8;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
-      WritableMemory mem2 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
+      WritableMemory mem2 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i = 0; i < memCapLongs; i++) {
         mem1.putLong(i * 8, i);
@@ -167,7 +167,7 @@ public class WritableDirectCopyTest {
   public void checkCopyCrossNativeAndByteArray() throws Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i = 0; i < mem1.getCapacity(); i++) {
         mem1.putByte(i, (byte) i);
@@ -188,7 +188,7 @@ public class WritableDirectCopyTest {
     int memCapacity = 128;
 
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i = 0; i < mem1.getCapacity(); i++) {
         mem1.putByte(i, (byte) i);
@@ -214,7 +214,7 @@ public class WritableDirectCopyTest {
   public void checkCopyCrossNativeArrayAndHierarchicalRegions() throws 
Exception {
     int memCapacity = 64;
     try (Arena arena = Arena.ofConfined()) {
-      WritableMemory mem1 = WritableMemory.allocateDirect(arena, memCapacity, 
1, ByteOrder.nativeOrder(), memReqSvr);
+      WritableMemory mem1 = WritableMemory.allocateDirect(memCapacity, 1, 
ByteOrder.nativeOrder(), memReqSvr, arena);
 
       for (int i = 0; i < mem1.getCapacity(); i++) { //fill with numbers
         mem1.putByte(i, (byte) i);


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

Reply via email to