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/05/11 05:25:20 UTC
[datasketches-memory] 04/04: Interim 3, almost done.
This is an automated email from the ASF dual-hosted git repository.
leerho pushed a commit to branch noSplitPackage
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git
commit 9ac70eb09cac7e0c6cbe272c14f997bc0639caf0
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Mon May 10 22:23:03 2021 -0700
Interim 3, almost done.
---
.../java/org/apache/datasketches/memory/Ints.java | 4 +-
.../apache/datasketches/memory/JDK7Compatible.java | 44 ----------------------
.../org/apache/datasketches/memory/UnsafeUtil.java | 8 ++--
.../java/org/apache/datasketches/memory/Util.java | 6 +--
.../datasketches/memory/test/UnsafeUtilTest.java | 17 ---------
.../apache/datasketches/memory/test/Utf8Test.java | 1 -
.../apache/datasketches/memory/test/UtilTest.java | 1 -
.../memory/test/WritableBufferImplTest.java | 4 +-
.../memory/test/WritableMemoryImplTest.java | 4 +-
.../memory/test/WritableMemoryTest.java | 9 ++---
.../datasketches/memory/test/XxHash64Test.java | 1 -
11 files changed, 17 insertions(+), 82 deletions(-)
diff --git a/src/main/java/org/apache/datasketches/memory/Ints.java b/src/main/java/org/apache/datasketches/memory/Ints.java
index d463ea0..455f579 100644
--- a/src/main/java/org/apache/datasketches/memory/Ints.java
+++ b/src/main/java/org/apache/datasketches/memory/Ints.java
@@ -20,11 +20,11 @@
package org.apache.datasketches.memory;
/** Equivalent of Guava's Ints. */
-final class Ints {
+public final class Ints {
private Ints() {}
- static int checkedCast(final long v) {
+ public static int checkedCast(final long v) {
final int result = (int) v;
if (result != v) {
throw new IllegalArgumentException("Out of range: " + v);
diff --git a/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java b/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java
deleted file mode 100644
index ee3ff0a..0000000
--- a/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches.memory;
-
-@SuppressWarnings({"restriction"})
-final class JDK7Compatible {
-
- private JDK7Compatible() {}
-
- static long getAndAddLong(final Object obj, final long address, final long increment) {
- long retVal;
- do {
- retVal = UnsafeUtil.unsafe.getLongVolatile(obj, address);
- } while (!UnsafeUtil.unsafe.compareAndSwapLong(obj, address, retVal, retVal + increment));
-
- return retVal;
- }
-
- static long getAndSetLong(final Object obj, final long address, final long value) {
- long retVal;
- do {
- retVal = UnsafeUtil.unsafe.getLongVolatile(obj, address);
- } while (!UnsafeUtil.unsafe.compareAndSwapLong(obj, address, retVal, value));
-
- return retVal;
- }
-}
diff --git a/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java b/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java
index a307802..ffe2414 100644
--- a/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java
+++ b/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java
@@ -129,7 +129,7 @@ public final class UnsafeUtil {
* @param jdkVer the java version string from System.getProperty("java.version").
* @return first two number groups of the java version string.
*/
- static int[] parseJavaVersion(final String jdkVer) {
+ public static int[] parseJavaVersion(final String jdkVer) {
final int p0, p1;
try {
String[] parts = jdkVer.trim().split("[^0-9\\.]");//grab only number groups and "."
@@ -143,14 +143,14 @@ public final class UnsafeUtil {
return new int[] {p0, p1};
}
- static void checkJavaVersion(final String jdkVer, final int p0, final int p1) {
+ public static void checkJavaVersion(final String jdkVer, final int p0, final int p1) {
if ( (p0 < 1) || ((p0 == 1) && (p1 < 8)) || (p0 >= 9) ) {
throw new ExceptionInInitializerError(
"Unsupported JDK Major Version, must be 1.8: " + jdkVer);
}
}
- static long getFieldOffset(final Class<?> c, final String fieldName) {
+ public static long getFieldOffset(final Class<?> c, final String fieldName) {
try {
return unsafe.objectFieldOffset(c.getDeclaredField(fieldName));
} catch (final NoSuchFieldException e) {
@@ -162,7 +162,7 @@ public final class UnsafeUtil {
* Like {@link Unsafe#arrayBaseOffset(Class)}, but caches return values for common array types.
* Useful because calling {@link Unsafe#arrayBaseOffset(Class)} directly incurs more overhead.
*/
- static long getArrayBaseOffset(final Class<?> c) {
+ public static long getArrayBaseOffset(final Class<?> c) {
// Ordering here is roughly in order of what we expect to be most popular.
if (c == byte[].class) {
return ARRAY_BYTE_BASE_OFFSET;
diff --git a/src/main/java/org/apache/datasketches/memory/Util.java b/src/main/java/org/apache/datasketches/memory/Util.java
index 61f1785..bfdc710 100644
--- a/src/main/java/org/apache/datasketches/memory/Util.java
+++ b/src/main/java/org/apache/datasketches/memory/Util.java
@@ -287,19 +287,19 @@ public final class Util {
}
} //End class RandomCodePoints
- static final void zeroCheck(final long value, final String arg) {
+ public static final void zeroCheck(final long value, final String arg) {
if (value <= 0) {
throw new IllegalArgumentException("The argument " + arg + " may not be negative or zero.");
}
}
- static final void negativeCheck(final long value, final String arg) {
+ public static final void negativeCheck(final long value, final String arg) {
if (value < 0) {
throw new IllegalArgumentException("The argument " + arg + " may not be negative.");
}
}
- static final void nullCheck(final Object obj, final String arg) {
+ public static final void nullCheck(final Object obj, final String arg) {
if (obj == null) {
throw new IllegalArgumentException("The argument " + arg + " may not be null.");
}
diff --git a/src/test/java/org/apache/datasketches/memory/test/UnsafeUtilTest.java b/src/test/java/org/apache/datasketches/memory/test/UnsafeUtilTest.java
index 615211a..4966449 100644
--- a/src/test/java/org/apache/datasketches/memory/test/UnsafeUtilTest.java
+++ b/src/test/java/org/apache/datasketches/memory/test/UnsafeUtilTest.java
@@ -27,7 +27,6 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.datasketches.memory.Ints;
-import org.apache.datasketches.memory.JDK7Compatible;
import org.apache.datasketches.memory.UnsafeUtil;
import org.testng.annotations.Test;
@@ -39,22 +38,6 @@ import org.testng.annotations.Test;
public class UnsafeUtilTest {
long testField = 1; //Do not remove & cannot be static. Used in reflection check.
- @Test
- public void checkJDK7methods() {
- try {
- final byte[] byteArr = new byte[16];
- byteArr[0] = (byte) 1;
- final long one = JDK7Compatible.getAndAddLong(byteArr, 16, 1L);
- assertEquals(one, 1L);
-
- final long two = JDK7Compatible.getAndSetLong(byteArr, 16, 3L);
- assertEquals(two, 2L);
- assertEquals(byteArr[0], 3);
-
- } catch (Exception e) {
- throw new RuntimeException("Failed");
- }
- }
@Test
public void checkJdkString() {
diff --git a/src/test/java/org/apache/datasketches/memory/test/Utf8Test.java b/src/test/java/org/apache/datasketches/memory/test/Utf8Test.java
index d7ad5c7..6c01235 100644
--- a/src/test/java/org/apache/datasketches/memory/test/Utf8Test.java
+++ b/src/test/java/org/apache/datasketches/memory/test/Utf8Test.java
@@ -34,7 +34,6 @@ import com.google.protobuf.ByteString;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.memory.Utf8CodingException;
-import org.apache.datasketches.memory.Util;
import org.apache.datasketches.memory.WritableMemory;
import org.apache.datasketches.memory.Util.RandomCodePoints;
diff --git a/src/test/java/org/apache/datasketches/memory/test/UtilTest.java b/src/test/java/org/apache/datasketches/memory/test/UtilTest.java
index f665b07..a44d9ec 100644
--- a/src/test/java/org/apache/datasketches/memory/test/UtilTest.java
+++ b/src/test/java/org/apache/datasketches/memory/test/UtilTest.java
@@ -45,7 +45,6 @@ import java.nio.file.attribute.PosixFilePermissions;
import org.apache.datasketches.memory.UnsafeUtil;
import org.apache.datasketches.memory.Util;
import org.apache.datasketches.memory.WritableMemory;
-import org.apache.datasketches.memory.Util.RandomCodePoints;
import org.testng.annotations.Test;
@SuppressWarnings("javadoc")
diff --git a/src/test/java/org/apache/datasketches/memory/test/WritableBufferImplTest.java b/src/test/java/org/apache/datasketches/memory/test/WritableBufferImplTest.java
index 7188be7..0899336 100644
--- a/src/test/java/org/apache/datasketches/memory/test/WritableBufferImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/test/WritableBufferImplTest.java
@@ -26,11 +26,11 @@ import static org.testng.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
-import org.apache.datasketches.memory.BaseState;
import org.apache.datasketches.memory.Buffer;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.memory.ReadOnlyException;
import org.apache.datasketches.memory.UnsafeUtil;
+import org.apache.datasketches.memory.Util;
import org.apache.datasketches.memory.WritableBuffer;
import org.apache.datasketches.memory.WritableHandle;
import org.apache.datasketches.memory.WritableMemory;
@@ -583,7 +583,7 @@ public class WritableBufferImplTest {
public void checkDuplicateNonNative() {
WritableMemory wmem = WritableMemory.allocate(64);
wmem.putShort(0, (short) 1);
- Buffer buf = wmem.asWritableBuffer().duplicate(BaseState.nonNativeByteOrder);
+ Buffer buf = wmem.asWritableBuffer().duplicate(Util.nonNativeByteOrder);
assertEquals(buf.getShort(0), 256);
}
diff --git a/src/test/java/org/apache/datasketches/memory/test/WritableMemoryImplTest.java b/src/test/java/org/apache/datasketches/memory/test/WritableMemoryImplTest.java
index c08eb5c..561e7d2 100644
--- a/src/test/java/org/apache/datasketches/memory/test/WritableMemoryImplTest.java
+++ b/src/test/java/org/apache/datasketches/memory/test/WritableMemoryImplTest.java
@@ -27,11 +27,11 @@ import static org.testng.Assert.fail;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
-import org.apache.datasketches.memory.BaseState;
import org.apache.datasketches.memory.Buffer;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.memory.ReadOnlyException;
import org.apache.datasketches.memory.UnsafeUtil;
+import org.apache.datasketches.memory.Util;
import org.apache.datasketches.memory.WritableBuffer;
import org.apache.datasketches.memory.WritableHandle;
import org.apache.datasketches.memory.WritableMemory;
@@ -708,7 +708,7 @@ public class WritableMemoryImplTest {
public void checkAsBufferNonNative() {
WritableMemory wmem = WritableMemory.allocate(64);
wmem.putShort(0, (short) 1);
- Buffer buf = wmem.asBuffer(BaseState.nonNativeByteOrder);
+ Buffer buf = wmem.asBuffer(Util.nonNativeByteOrder);
assertEquals(buf.getShort(0), 256);
}
diff --git a/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java b/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
index 906d216..63c3291 100644
--- a/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
+++ b/src/test/java/org/apache/datasketches/memory/test/WritableMemoryTest.java
@@ -19,7 +19,6 @@
package org.apache.datasketches.memory.test;
-import static org.apache.datasketches.memory.CompareAndCopy.UNSAFE_COPY_THRESHOLD_BYTES;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
@@ -28,8 +27,8 @@ import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.concurrent.ThreadLocalRandom;
-import org.apache.datasketches.memory.BaseState;
import org.apache.datasketches.memory.Memory;
+import org.apache.datasketches.memory.Util;
import org.apache.datasketches.memory.WritableBuffer;
import org.apache.datasketches.memory.WritableMemory;
import org.testng.annotations.Test;
@@ -143,7 +142,7 @@ public class WritableMemoryTest {
public void checkLargeEquals() {
// Size bigger than UNSAFE_COPY_MEMORY_THRESHOLD; size with "reminder" = 7, to test several
// traits of the implementation
- final int thresh = UNSAFE_COPY_THRESHOLD_BYTES;
+ final int thresh = Util.UNSAFE_COPY_THRESHOLD_BYTES;
byte[] bytes1 = new byte[(thresh * 2) + 7];
ThreadLocalRandom.current().nextBytes(bytes1);
byte[] bytes2 = bytes1.clone();
@@ -162,11 +161,11 @@ public class WritableMemoryTest {
@Test
public void checkWrapWithBO() {
WritableMemory wmem = WritableMemory.wrap(new byte[0], ByteOrder.BIG_ENDIAN);
- boolean nativeBO = wmem.getTypeByteOrder() == BaseState.nativeByteOrder;
+ boolean nativeBO = wmem.getTypeByteOrder() == Util.nativeByteOrder;
assertTrue(nativeBO); //remains true for ZeroSizeMemory
println("" + nativeBO);
wmem = WritableMemory.wrap(new byte[8], ByteOrder.BIG_ENDIAN);
- nativeBO = wmem.getTypeByteOrder() == BaseState.nativeByteOrder;
+ nativeBO = wmem.getTypeByteOrder() == Util.nativeByteOrder;
assertFalse(nativeBO);
println("" + nativeBO);
}
diff --git a/src/test/java/org/apache/datasketches/memory/test/XxHash64Test.java b/src/test/java/org/apache/datasketches/memory/test/XxHash64Test.java
index e88d410..f12f78a 100644
--- a/src/test/java/org/apache/datasketches/memory/test/XxHash64Test.java
+++ b/src/test/java/org/apache/datasketches/memory/test/XxHash64Test.java
@@ -33,7 +33,6 @@ import static org.testng.Assert.assertTrue;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
-import org.apache.datasketches.memory.BaseState;
import org.apache.datasketches.memory.Memory;
import org.apache.datasketches.memory.WritableMemory;
import org.testng.annotations.Test;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org