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) {