From 8ee1a36da4e75eed8e5665641e8b2cc06ac93cab Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 2 Jan 2025 12:40:41 -0500 Subject: [PATCH] GH-9704: Properly implement `CheckedCallable.unchecked()` Fixes: https://github.com/spring-projects/spring-integration/issues/9704 * Make `CheckedCallable.unchecked()` to return an expected `Callable` * Deprecate for removal `CheckedCallable.uncheckedCallable()` --- .../integration/util/CheckedCallable.java | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/util/CheckedCallable.java b/spring-integration-core/src/main/java/org/springframework/integration/util/CheckedCallable.java index 9e9231e381..d657559a32 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/util/CheckedCallable.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/util/CheckedCallable.java @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 the original author or authors. + * Copyright 2023-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,25 +35,11 @@ public interface CheckedCallable { T call() throws E; /** - * Wrap the {@link #call()} into unchecked {@link Runnable} (by mistake). + * Wrap the {@link #call()} into unchecked {@link Callable}. * Re-throw its exception wrapped with a {@link IllegalStateException}. - * @return the Runnable (by mistake). - * @deprecated since 6.3.7 in favor of {@link #uncheckedCallable()}. - * Will be restored back, but with a proper {@link Callable} return type. + * @return the unchecked {@link Callable}. */ - @Deprecated - default Runnable unchecked() { - return this::uncheckedCallable; - } - - /** - * Wrap the {@link #call()} into unchecked {@link Callable}. - * Re-throw its exception wrapped with a {@link IllegalStateException}. - * Will be replaced with a proper {@link #unchecked()} implementation in 6.5. - * @return the unchecked {@link Callable}. - * @since 6.3.7 - */ - default Callable uncheckedCallable() { + default Callable unchecked() { return () -> { try { return call(); @@ -72,4 +58,16 @@ public interface CheckedCallable { }; } + /** + * Wrap the {@link #call()} into unchecked {@link Callable}. + * Re-throw its exception wrapped with a {@link IllegalStateException}. + * @return the unchecked {@link Callable}. + * @deprecated since 6.5 in favor of {@link #unchecked()}. + * @since 6.3.7 + */ + @Deprecated(since = "6.5", forRemoval = true) + default Callable uncheckedCallable() { + return unchecked(); + } + }