From 8b09ddb85ee0c5cd694531d382e864f920403c55 Mon Sep 17 00:00:00 2001 From: Cheng Pan Date: Fri, 19 Dec 2025 19:43:43 +0800 Subject: [PATCH] [CELEBORN-2240] Adapt to SPARK-51756 --- .../org/apache/spark/shuffle/celeborn/SparkUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/client-spark/spark-3/src/main/java/org/apache/spark/shuffle/celeborn/SparkUtils.java b/client-spark/spark-3/src/main/java/org/apache/spark/shuffle/celeborn/SparkUtils.java index 2b30a20206f..b50d3546e4d 100644 --- a/client-spark/spark-3/src/main/java/org/apache/spark/shuffle/celeborn/SparkUtils.java +++ b/client-spark/spark-3/src/main/java/org/apache/spark/shuffle/celeborn/SparkUtils.java @@ -82,9 +82,17 @@ public class SparkUtils { public static final String FETCH_FAILURE_ERROR_MSG = "Celeborn FetchFailure appShuffleId/shuffleId: "; + private static final DynMethods.BoundMethod MAP_STATUS_APPLY_METHOD = + DynMethods.builder("apply") + // for SPARK-51756 (4.1.0) and later + .impl(MapStatus$.class, BlockManagerId.class, long[].class, long.class, long.class) + // for Spark 4.0 and earlier + .impl(MapStatus$.class, BlockManagerId.class, long[].class, long.class) + .build(MapStatus$.MODULE$); + public static MapStatus createMapStatus( BlockManagerId loc, long[] uncompressedSizes, long mapTaskId) { - return MapStatus$.MODULE$.apply(loc, uncompressedSizes, mapTaskId); + return MAP_STATUS_APPLY_METHOD.invoke(loc, uncompressedSizes, mapTaskId, 0L); } private static final DynFields.UnboundField DATA_SIZE_METRIC_FIELD =