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 2021/08/08 23:18:30 UTC
[datasketches-memory] 01/01: This is to fix DS-Java issue 358,
which relates to Druid Issue 11544.
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch DS-javaIssue358
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit 310a8b7a3fafc99f12cae01125cac675ed4cf196
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Sun Aug 8 16:18:03 2021 -0700
This is to fix DS-Java issue 358, which relates to Druid Issue 11544.
---
.../datasketches/memory/test/LeafImplTest.java | 4 ++--
.../memory/test/WritableMemoryTest.java | 2 +-
.../org/apache/datasketches/memory/BaseState.java | 1 +
.../apache/datasketches/memory/WritableBuffer.java | 18 +++++++++------
.../apache/datasketches/memory/WritableMemory.java | 27 +++++++++++-----------
.../internal/BBNonNativeWritableBufferImpl.java | 9 ++++++++
.../internal/BBNonNativeWritableMemoryImpl.java | 17 +++++++++++---
.../memory/internal/BBWritableBufferImpl.java | 9 ++++++++
.../memory/internal/BBWritableMemoryImpl.java | 17 +++++++++++---
.../memory/internal/BaseStateImpl.java | 3 +--
.../memory/internal/BaseWritableMemoryImpl.java | 7 +++---
.../datasketches/memory/internal/BufferImpl.java | 4 ++--
.../DirectNonNativeWritableBufferImpl.java | 7 ------
.../DirectNonNativeWritableMemoryImpl.java | 7 ------
.../memory/internal/DirectWritableBufferImpl.java | 6 -----
.../internal/HeapNonNativeWritableBufferImpl.java | 7 ++++++
.../internal/HeapNonNativeWritableMemoryImpl.java | 9 +++++++-
.../memory/internal/HeapWritableBufferImpl.java | 7 ++++++
.../memory/internal/HeapWritableMemoryImpl.java | 7 ++++++
.../internal/MapNonNativeWritableBufferImpl.java | 14 +++++------
.../internal/MapNonNativeWritableMemoryImpl.java | 14 +++++------
.../memory/internal/MapWritableBufferImpl.java | 14 +++++------
.../memory/internal/MapWritableMemoryImpl.java | 14 +++++------
.../datasketches/memory/internal/MemoryImpl.java | 4 ++--
.../memory/internal/WritableBufferImpl.java | 13 ++++-------
.../memory/internal/WritableMemoryImpl.java | 14 ++++-------
26 files changed, 148 insertions(+), 107 deletions(-)
diff --git a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
index 9e20691..ac59599 100644
--- a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
+++ b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/LeafImplTest.java
@@ -227,7 +227,7 @@ public class LeafImplTest {
assertTrue(mem.getByteBuffer() != null);
assertTrue(mem.getTypeByteOrder() == Util.nativeByteOrder);
- assertTrue(mem.getMemoryRequestServer() == null);
+ assertNotNull(mem.getMemoryRequestServer());
Object obj = ReflectUtil.getUnsafeObject(mem);
//Object obj = mem.getUnsafeObject();
if (direct) {
@@ -269,7 +269,7 @@ public class LeafImplTest {
assertTrue(nnMem.getByteBuffer() != null);
assertTrue(nnMem.getTypeByteOrder() == Util.nonNativeByteOrder);
- assertTrue(nnMem.getMemoryRequestServer() == null);
+ assertNotNull(nnMem.getMemoryRequestServer());
obj = ReflectUtil.getUnsafeObject(nnMem);
//obj = nnMem.getUnsafeObject();
if (direct) {
diff --git a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
index ea49e69..f9cbd78 100644
--- a/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
+++ b/datasketches-memory-java8-tests/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
@@ -47,7 +47,7 @@ public class WritableMemoryTest {
public void wrapBigEndianAsLittle() {
ByteBuffer bb = ByteBuffer.allocate(64);
bb.putChar(0, (char)1); //as BE
- WritableMemory wmem = WritableMemory.writableWrap(bb, ByteOrder.LITTLE_ENDIAN);
+ WritableMemory wmem = WritableMemory.writableWrap(bb, ByteOrder.LITTLE_ENDIAN, null);
assertEquals(wmem.getChar(0), 256);
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
index 259f571..c3728dd 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BaseState.java
@@ -32,6 +32,7 @@ import org.apache.datasketches.memory.internal.BaseStateImpl;
* @author Lee Rhodes
*/
public interface BaseState {
+ static final MemoryRequestServer defaultMemReqSvr = new DefaultMemoryRequestServer();
//Byte Order Related
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
index bfb3834..1b77930 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java
@@ -37,7 +37,7 @@ public interface WritableBuffer extends Buffer {
* @return a new WritableBuffer for write operations on the given ByteBuffer.
*/
static WritableBuffer writableWrap(ByteBuffer byteBuf) {
- return WritableBufferImpl.writableWrap(byteBuf, byteBuf.order());
+ return WritableBufferImpl.writableWrap(byteBuf);
}
/**
@@ -48,10 +48,13 @@ public interface WritableBuffer extends Buffer {
* @param byteBuf the given ByteBuffer, must not be null
* @param byteOrder the byte order to be used, which may be independent of the byte order
* state of the given ByteBuffer
+ * @param memReqSvr A user-specified MemoryRequestServer.
+ * This is a callback mechanism for a user client to request a larger Memory.
* @return a new WritableBuffer for write operations on the given ByteBuffer.
*/
- static WritableBuffer writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder) {
- return WritableBufferImpl.writableWrap(byteBuf, byteOrder);
+ static WritableBuffer writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder, MemoryRequestServer memReqSvr) {
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableBufferImpl.writableWrap(byteBuf, byteOrder, mReqSvr);
}
//DUPLICATES
@@ -363,10 +366,11 @@ public interface WritableBuffer extends Buffer {
//OTHER WRITABLE API METHODS
/**
- * For Direct Memory only. Other types of backing resources will return null.
- * Gets the MemoryRequestServer object used by dynamic off-heap (Direct) memory objects
- * to request additional memory.
- * Set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
+ * For ByteBuffer and Direct Memory backed resources only. Heap and Map backed resources will return null.
+ * Gets the MemoryRequestServer object used by dynamic Memory-backed objects
+ * to request additional memory. To customize the actions of the MemoryRequestServer,
+ * extend the MemoryRequestServer interfact and
+ * set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
* If not explicity set, this returns the {@link DefaultMemoryRequestServer}.
* @return the MemoryRequestServer object (if direct memory) or null.
*/
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
index 5665964..29dd9c9 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java
@@ -34,14 +34,11 @@ public interface WritableMemory extends Memory {
* the same byte order, as the given ByteBuffer, unless the capacity of the given ByteBuffer is
* zero, then byte order of the returned WritableMemory object, as well as backing storage and
* read-only status are unspecified.
- *
- * <p><b>Note:</b> Always qualify this method with the class name, e.g.,
- * <i>WritableMemory.wrap(...)</i>.
* @param byteBuf the given ByteBuffer
* @return a new WritableMemory for write operations on the given ByteBuffer.
*/
static WritableMemory writableWrap(ByteBuffer byteBuf) {
- return WritableMemoryImpl.writableWrap(byteBuf, byteBuf.order());
+ return WritableMemoryImpl.writableWrap(byteBuf);
}
/**
@@ -49,16 +46,16 @@ public interface WritableMemory extends Memory {
* 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 WritableMemory object
* (as well as backing storage) is unspecified.
- *
- * <p><b>Note:</b> Always qualify this method with the class name, e.g.,
- * <i>WritableMemory.wrap(...)</i>.
* @param byteBuf the given ByteBuffer, must not be null
* @param byteOrder the byte order to be used, which may be independent of the byte order
* state of the given ByteBuffer
+ * @param memReqSvr A user-specified MemoryRequestServer. If null, the DefaultMemoryRequestServer is used.
+ * This is a callback mechanism for a user client to request a larger Memory.
* @return a new WritableMemory for write operations on the given ByteBuffer.
*/
- static WritableMemory writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder) {
- return WritableMemoryImpl.writableWrap(byteBuf, byteOrder);
+ static WritableMemory writableWrap(ByteBuffer byteBuf, ByteOrder byteOrder, MemoryRequestServer memReqSvr) {
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableMemoryImpl.writableWrap(byteBuf, byteOrder, mReqSvr);
}
//MAP
@@ -134,7 +131,8 @@ public interface WritableMemory extends Memory {
* Please read Javadocs for {@link Handle}.
*/
static WritableHandle allocateDirect(long capacityBytes, MemoryRequestServer memReqSvr) {
- return WritableMemoryImpl.allocateDirect(capacityBytes, memReqSvr);
+ MemoryRequestServer mReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
+ return WritableMemoryImpl.allocateDirect(capacityBytes, mReqSvr);
}
//REGIONS
@@ -602,10 +600,11 @@ public interface WritableMemory extends Memory {
//OTHER WRITABLE API METHODS
/**
- * For Direct Memory only. Other types of backing resources will return null.
- * Gets the MemoryRequestServer object used by dynamic off-heap (Direct) memory objects
- * to request additional memory.
- * Set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
+ * For ByteBuffer and Direct Memory backed resources only. Heap and Map backed resources will return null.
+ * Gets the MemoryRequestServer object used by dynamic Memory-backed objects
+ * to request additional memory. To customize the actions of the MemoryRequestServer,
+ * extend the MemoryRequestServer interfact and
+ * set using {@link WritableMemory#allocateDirect(long, MemoryRequestServer)}.
* If not explicity set, this returns the {@link DefaultMemoryRequestServer}.
* @return the MemoryRequestServer object (if direct memory) or null.
*/
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
index 1c798c3..584e4a3 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for ByteBuffer, non-native byte order.
*
@@ -33,6 +35,7 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBNonNativeWritableBufferImpl(
@@ -82,6 +85,12 @@ final class BBNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
index ff3f3c5..7416901 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for ByteBuffer, non-native byte order.
*
@@ -33,6 +35,7 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBNonNativeWritableMemoryImpl(
@@ -41,11 +44,13 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
final long regionOffset,
final long capacityBytes,
final int typeId,
- final ByteBuffer byteBuf) {
+ final ByteBuffer byteBuf,
+ final MemoryRequestServer memReqSvr) {
super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
this.unsafeObj = unsafeObj;
this.nativeBaseOffset = nativeBaseOffset;
this.byteBuf = byteBuf;
+ this.memReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
this.typeId = (byte) (id | (typeId & 0x7));
}
@@ -56,10 +61,10 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer())
+ type, getByteBuffer(), memReqSvr)
: new BBNonNativeWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer());
+ type, getByteBuffer(), memReqSvr);
}
@Override
@@ -81,6 +86,12 @@ final class BBNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
index d924f9a..eadd15e 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for ByteBuffer, native byte order.
*
@@ -33,6 +35,7 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBWritableBufferImpl(
@@ -82,6 +85,12 @@ final class BBWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
index 4a9e4ca..2cd0052 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java
@@ -22,6 +22,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for ByteBuffer, native byte order.
*
@@ -33,6 +35,7 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
private final Object unsafeObj;
private final long nativeBaseOffset; //used to compute cumBaseOffset
private final ByteBuffer byteBuf; //holds a reference to a ByteBuffer until we are done with it.
+ private MemoryRequestServer memReqSvr = null; //cannot be final;
private final byte typeId;
BBWritableMemoryImpl(
@@ -41,11 +44,13 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
final long regionOffset,
final long capacityBytes,
final int typeId,
- final ByteBuffer byteBuf) {
+ final ByteBuffer byteBuf,
+ final MemoryRequestServer memReqSvr) {
super(unsafeObj, nativeBaseOffset, regionOffset, capacityBytes);
this.unsafeObj = unsafeObj;
this.nativeBaseOffset = nativeBaseOffset;
this.byteBuf = byteBuf;
+ this.memReqSvr = (memReqSvr == null) ? defaultMemReqSvr : memReqSvr;
this.typeId = (byte) (id | (typeId & 0x7));
}
@@ -56,10 +61,10 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer())
+ type, getByteBuffer(), memReqSvr)
: new BBNonNativeWritableMemoryImpl(
unsafeObj, nativeBaseOffset, getRegionOffset(offsetBytes), capacityBytes,
- type, getByteBuffer());
+ type, getByteBuffer(), memReqSvr);
}
@Override
@@ -81,6 +86,12 @@ final class BBWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ assertValid();
+ return memReqSvr; //cannot be null
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
index 28ed3dd..53b4a79 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseStateImpl.java
@@ -29,7 +29,6 @@ import java.nio.ByteOrder;
import java.util.concurrent.atomic.AtomicLong;
import org.apache.datasketches.memory.BaseState;
-import org.apache.datasketches.memory.DefaultMemoryRequestServer;
import org.apache.datasketches.memory.MemoryRequestServer;
/**
@@ -47,7 +46,7 @@ public abstract class BaseStateImpl implements BaseState {
static final AtomicLong currentDirectMemoryMapAllocations_ = new AtomicLong();
static final AtomicLong currentDirectMemoryMapAllocated_ = new AtomicLong();
- static final MemoryRequestServer defaultMemReqSvr = new DefaultMemoryRequestServer();
+
//class type IDs. Do not change the bit orders
// 0000 0XXX
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
index 640171a..5464382 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java
@@ -89,7 +89,8 @@ abstract class BaseWritableMemoryImpl extends WritableMemoryImpl {
}
static BaseWritableMemoryImpl wrapByteBuffer(
- final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder) {
+ final ByteBuffer byteBuf, final boolean localReadOnly, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
final AccessByteBuffer abb = new AccessByteBuffer(byteBuf);
if (abb.resourceReadOnly && !localReadOnly) {
throw new ReadOnlyException("ByteBuffer is Read Only");
@@ -97,9 +98,9 @@ abstract class BaseWritableMemoryImpl extends WritableMemoryImpl {
final int typeId = (abb.resourceReadOnly || localReadOnly) ? READONLY : 0;
return Util.isNativeByteOrder(byteOrder)
? new BBWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
- abb.regionOffset, abb.capacityBytes, typeId, byteBuf)
+ abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr)
: new BBNonNativeWritableMemoryImpl(abb.unsafeObj, abb.nativeBaseOffset,
- abb.regionOffset, abb.capacityBytes, typeId, byteBuf);
+ abb.regionOffset, abb.capacityBytes, typeId, byteBuf, memReqSvr);
}
@SuppressWarnings("resource")
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
index e673261..a9a1106 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BufferImpl.java
@@ -48,14 +48,14 @@ public abstract class BufferImpl extends BaseBufferImpl implements Buffer {
public static BufferImpl wrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
final BaseWritableMemoryImpl wmem =
- BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder);
+ BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder, defaultMemReqSvr);
final WritableBufferImpl wbuf = wmem.asWritableBuffer(true, byteOrder);
wbuf.setStartPositionEnd(0, byteBuf.position(), byteBuf.limit());
return wbuf;
}
//MAP
- //Use MemoryImpl for mapping files and the asBuffer()
+ //Use MemoryImpl for mapping files and then call asBuffer()
//DUPLICATES
@Override
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
index 5957fc6..457870f 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java
@@ -98,11 +98,4 @@ final class DirectNonNativeWritableBufferImpl extends NonNativeWritableBufferImp
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
index 9c0ee47..48b92eb 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java
@@ -96,11 +96,4 @@ final class DirectNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImp
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
index b5c3609..e7048a6 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java
@@ -98,10 +98,4 @@ final class DirectWritableBufferImpl extends NativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
index 5a74126..2e81c3f 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for heap-based, non-native byte order.
*
@@ -69,6 +71,11 @@ final class HeapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
index 04b3033..fad9d89 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for heap-based, non-native byte order.
*
@@ -68,6 +70,11 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
@@ -76,5 +83,5 @@ final class HeapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl
Object getUnsafeObject() {
return unsafeObj;
}
-
+
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
index 5a9316f..641b4c4 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for heap-based, native byte order.
*
@@ -69,6 +71,11 @@ final class HeapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
index 4aa398a..806cc16 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for heap-based, native byte order.
*
@@ -68,6 +70,11 @@ final class HeapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
int getTypeId() {
return typeId & 0xff;
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
index 0f135d5..f0302b9 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for map memory, non-native byte order.
*
@@ -72,6 +74,11 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -86,11 +93,4 @@ final class MapNonNativeWritableBufferImpl extends NonNativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
index 9920c2d..25f002b 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for map memory, non-native byte order.
*
@@ -71,6 +73,11 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -84,12 +91,5 @@ final class MapNonNativeWritableMemoryImpl extends NonNativeWritableMemoryImpl {
public boolean isValid() {
return valid.get();
}
-
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
index eafe417..4174518 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableBufferImpl} for map memory, native byte order.
*
@@ -72,6 +74,11 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -86,11 +93,4 @@ final class MapWritableBufferImpl extends NativeWritableBufferImpl {
return valid.get();
}
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
index 5c9377a..8ee8a23 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java
@@ -21,6 +21,8 @@ package org.apache.datasketches.memory.internal;
import java.nio.ByteOrder;
+import org.apache.datasketches.memory.MemoryRequestServer;
+
/**
* Implementation of {@link WritableMemoryImpl} for map memory, native byte order.
*
@@ -71,6 +73,11 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
}
@Override
+ public MemoryRequestServer getMemoryRequestServer() {
+ return null;
+ }
+
+ @Override
long getNativeBaseOffset() {
return nativeBaseOffset;
}
@@ -84,12 +91,5 @@ final class MapWritableMemoryImpl extends NativeWritableMemoryImpl {
public boolean isValid() {
return valid.get();
}
-
- @Override
- void checkValid() {
- if (!this.isValid()) {
- throw new IllegalStateException("MemoryImpl not valid.");
- }
- }
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
index dc236eb..aaaac73 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryImpl.java
@@ -53,11 +53,11 @@ public abstract class MemoryImpl extends BaseStateImpl implements Memory {
//BYTE BUFFER
public static MemoryImpl wrap(final ByteBuffer byteBuf) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteBuf.order());
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteBuf.order(), defaultMemReqSvr);
}
public static MemoryImpl wrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder);
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, true, byteOrder, defaultMemReqSvr);
}
//MAP
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
index 4f53d40..020e5a4 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableBufferImpl.java
@@ -42,12 +42,13 @@ public abstract class WritableBufferImpl extends BufferImpl implements WritableB
//BYTE BUFFER
public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf) {
- return writableWrap(byteBuf, byteBuf.order());
+ return writableWrap(byteBuf, byteBuf.order(), defaultMemReqSvr);
}
- public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
+ public static WritableBufferImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
final BaseWritableMemoryImpl wmem =
- BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder);
+ BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
final WritableBufferImpl wbuf = wmem.asWritableBuffer(false, byteOrder);
wbuf.setStartPositionEnd(0, byteBuf.position(), byteBuf.limit());
return wbuf;
@@ -166,10 +167,4 @@ public abstract class WritableBufferImpl extends BufferImpl implements WritableB
@Override
public abstract void fill(byte value);
- //OTHER WRITABLE API METHODS
- @Override
- public MemoryRequestServer getMemoryRequestServer() {
- return null;
- }
-
}
diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
index bc24430..a4c32a5 100644
--- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
+++ b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/WritableMemoryImpl.java
@@ -50,11 +50,12 @@ public abstract class WritableMemoryImpl extends MemoryImpl implements WritableM
//BYTE BUFFER
public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteBuf.order());
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteBuf.order(), defaultMemReqSvr);
}
- public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder) {
- return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder);
+ public static WritableMemoryImpl writableWrap(final ByteBuffer byteBuf, final ByteOrder byteOrder,
+ final MemoryRequestServer memReqSvr) {
+ return BaseWritableMemoryImpl.wrapByteBuffer(byteBuf, false, byteOrder, memReqSvr);
}
//MAP
@@ -250,11 +251,4 @@ public abstract class WritableMemoryImpl extends MemoryImpl implements WritableM
@Override
public abstract void setBits(long offsetBytes, byte bitMask);
-
- //OTHER WRITABLE API METHODS
- @Override
- public MemoryRequestServer getMemoryRequestServer() {
- return null;
- }
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org