This is an automated email from the ASF dual-hosted git repository. dmvk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit 0a874de89cbcd1779d1dfc78350575971fcaa4a8 Author: David Moravek <[email protected]> AuthorDate: Mon Feb 27 18:49:46 2023 +0100 [hotfix] Introduce InstantiationUtil#cloneUnchecked for the cases where we don't need to handle exceptions. Signed-off-by: David Moravek <[email protected]> --- .../java/org/apache/flink/util/InstantiationUtil.java | 16 ++++++++++++++++ .../scheduler/adaptive/JobGraphJobInformation.java | 5 ++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java b/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java index 938d5dee795..b494856a5ca 100644 --- a/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java +++ b/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java @@ -624,6 +624,22 @@ public final class InstantiationUtil { } } + /** + * Unchecked equivalent of {@link #clone(Serializable)}. + * + * @param obj Object to clone + * @param <T> Type of the object to clone + * @return The cloned object + */ + public static <T extends Serializable> T cloneUnchecked(T obj) { + try { + return clone(obj, obj.getClass().getClassLoader()); + } catch (IOException | ClassNotFoundException e) { + throw new RuntimeException( + String.format("Unable to clone instance of %s.", obj.getClass().getName()), e); + } + } + /** * Clones the given writable using the {@link IOReadableWritable serialization}. * diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/JobGraphJobInformation.java b/flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/JobGraphJobInformation.java index ea1d699c831..8c94d33cce6 100644 --- a/flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/JobGraphJobInformation.java +++ b/flink-runtime/src/main/java/org/apache/flink/runtime/scheduler/adaptive/JobGraphJobInformation.java @@ -30,7 +30,6 @@ import org.apache.flink.util.InstantiationUtil; import org.apache.flink.shaded.guava30.com.google.common.collect.Iterables; -import java.io.IOException; import java.util.Collection; /** {@link JobInformation} created from a {@link JobGraph}. */ @@ -80,8 +79,8 @@ public class JobGraphJobInformation implements JobInformation { } /** Returns a copy of a jobGraph that can be mutated. */ - public JobGraph copyJobGraph() throws IOException, ClassNotFoundException { - return InstantiationUtil.clone(jobGraph); + public JobGraph copyJobGraph() { + return InstantiationUtil.cloneUnchecked(jobGraph); } public VertexParallelismStore getVertexParallelismStore() {
