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