From b93c176ec745ca71605e0999e8faa19584ee2c0e Mon Sep 17 00:00:00 2001 From: Pratyush Sharma <56130065+pratyush618@users.noreply.github.com> Date: Sat, 11 Jul 2026 09:53:06 +0530 Subject: [PATCH] fix(java): avoid Integer unboxing in resource health merge --- .../org/byteveda/taskito/dashboard/api/OpsHandlers.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sdks/java/src/main/java/org/byteveda/taskito/dashboard/api/OpsHandlers.java b/sdks/java/src/main/java/org/byteveda/taskito/dashboard/api/OpsHandlers.java index c6eb44e4..8a35fb13 100644 --- a/sdks/java/src/main/java/org/byteveda/taskito/dashboard/api/OpsHandlers.java +++ b/sdks/java/src/main/java/org/byteveda/taskito/dashboard/api/OpsHandlers.java @@ -1,6 +1,7 @@ package org.byteveda.taskito.dashboard.api; import java.util.ArrayList; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; @@ -8,6 +9,7 @@ import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; +import java.util.function.BinaryOperator; import java.util.stream.Collectors; import org.byteveda.taskito.Taskito; import org.byteveda.taskito.dashboard.support.Http; @@ -79,7 +81,10 @@ public Object resources() { advertised.addAll(Json.parseStringList(worker.resources)); Map health = Json.parseMap(worker.resourceHealth); if (health != null) { - health.forEach((name, value) -> reported.merge(name, severity(String.valueOf(value)), Math::max)); + // BinaryOperator.maxBy keeps the merge on boxed Integers — Math::max + // would funnel both arguments through an unchecked Integer->int unboxing. + health.forEach((name, value) -> reported.merge( + name, severity(String.valueOf(value)), BinaryOperator.maxBy(Comparator.naturalOrder()))); } } Set all = new TreeSet<>(advertised);