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

dmollitor pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/main by this push:
     new 67ed33112 AVRO-4050: Deprecate MapUtil computeIfAbsent (#3142)
67ed33112 is described below

commit 67ed33112465398db44ee9555d1791776ef8f0c7
Author: belugabehr <[email protected]>
AuthorDate: Sat Sep 14 14:04:48 2024 -0400

    AVRO-4050: Deprecate MapUtil computeIfAbsent (#3142)
---
 .../avro/src/main/java/org/apache/avro/reflect/ReflectData.java    | 3 +--
 .../avro/src/main/java/org/apache/avro/specific/SpecificData.java  | 3 +--
 lang/java/avro/src/main/java/org/apache/avro/util/MapUtil.java     | 7 ++++---
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git 
a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java 
b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java
index 0c0b10478..95fc9598c 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java
@@ -36,7 +36,6 @@ import org.apache.avro.io.DatumWriter;
 import org.apache.avro.specific.FixedSize;
 import org.apache.avro.specific.SpecificData;
 import org.apache.avro.util.ClassUtils;
-import org.apache.avro.util.MapUtil;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
@@ -839,7 +838,7 @@ public class ReflectData extends SpecificData {
 
   // Return of this class and its superclasses to serialize.
   private static Field[] getCachedFields(Class<?> recordClass) {
-    return MapUtil.computeIfAbsent(FIELDS_CACHE, recordClass, rc -> 
getFields(rc, true));
+    return FIELDS_CACHE.computeIfAbsent(recordClass, rc -> getFields(rc, 
true));
   }
 
   private static Field[] getFields(Class<?> recordClass, boolean excludeJava) {
diff --git 
a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java 
b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java
index c30616e17..a9dbbcbb5 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificData.java
@@ -30,7 +30,6 @@ import org.apache.avro.io.DatumWriter;
 import org.apache.avro.io.DecoderFactory;
 import org.apache.avro.io.EncoderFactory;
 import org.apache.avro.util.ClassUtils;
-import org.apache.avro.util.MapUtil;
 import org.apache.avro.util.SchemaUtil;
 import org.apache.avro.util.internal.ClassValueCache;
 
@@ -379,7 +378,7 @@ public class SpecificData extends GenericData {
       String name = schema.getFullName();
       if (name == null)
         return null;
-      Class<?> c = MapUtil.computeIfAbsent(classCache, name, n -> {
+      Class<?> c = classCache.computeIfAbsent(name, n -> {
         try {
           return ClassUtils.forName(getClassLoader(), getClassName(schema));
         } catch (ClassNotFoundException e) {
diff --git a/lang/java/avro/src/main/java/org/apache/avro/util/MapUtil.java 
b/lang/java/avro/src/main/java/org/apache/avro/util/MapUtil.java
index 1bdbfaf9a..394aa2b3a 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/util/MapUtil.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/util/MapUtil.java
@@ -27,13 +27,14 @@ public class MapUtil {
   }
 
   /**
-   * A temporary workaround for Java 8 specific performance issue JDK-8161372
-   * .<br>
-   * This class should be removed once we drop Java 8 support.
+   * A temporary workaround for Java 8 specific performance issue JDK-8161372.
    *
    * @see <a href=
    *      "https://bugs.openjdk.java.net/browse/JDK-8161372";>JDK-8161372</a>
+   * @deprecated As of JDK 1.9 this issue has been resolved.
    */
+  // TODO: Remove for 1.13.0 or later
+  @Deprecated
   public static <K, V> V computeIfAbsent(ConcurrentMap<K, V> map, K key, 
Function<K, V> mappingFunction) {
     V value = map.get(key);
     if (value != null) {

Reply via email to