Skip to content

Commit 667027d

Browse files
authored
Fixes breakages of the upgrade feature (#29731) (#29766)
* Fixes breakages of the upgrade feature * Fix spotless * Addressing reviewer comments * Removing unused import * Reverting the PreCommit update
1 parent 03e9036 commit 667027d

5 files changed

Lines changed: 624 additions & 521 deletions

File tree

runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/TransformUpgrader.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.io.ByteArrayInputStream;
2121
import java.io.ByteArrayOutputStream;
2222
import java.io.IOException;
23+
import java.io.InvalidClassException;
2324
import java.io.ObjectInputStream;
2425
import java.io.ObjectOutputStream;
2526
import java.net.ServerSocket;
@@ -49,12 +50,16 @@
4950
import org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.annotations.VisibleForTesting;
5051
import org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.base.Strings;
5152
import org.checkerframework.checker.nullness.qual.Nullable;
53+
import org.slf4j.Logger;
54+
import org.slf4j.LoggerFactory;
5255

5356
/**
5457
* A utility class that allows upgrading transforms of a given pipeline using the Beam Transform
5558
* Service.
5659
*/
5760
public class TransformUpgrader implements AutoCloseable {
61+
62+
private static final Logger LOG = LoggerFactory.getLogger(TransformUpgrader.class);
5863
private static final String UPGRADE_NAMESPACE = "transform:upgrade:";
5964

6065
private ExpansionServiceClientFactory clientFactory;
@@ -405,10 +410,16 @@ public static byte[] toByteArray(Object object) {
405410
* method.
406411
* @return re-generated object.
407412
*/
408-
public static Object fromByteArray(byte[] bytes) {
413+
public static Object fromByteArray(byte[] bytes) throws InvalidClassException {
409414
try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
410415
ObjectInputStream in = new ObjectInputStream(bis)) {
411416
return in.readObject();
417+
} catch (InvalidClassException e) {
418+
LOG.info(
419+
"An object cannot be re-generated from the provided byte array. Caller may use the "
420+
+ "default value for the parameter when upgrading. Underlying error: "
421+
+ e);
422+
throw e;
412423
} catch (Exception e) {
413424
throw new RuntimeException(e);
414425
}

0 commit comments

Comments
 (0)