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

Reply via email to