Skip to content

Commit 65cc7cd

Browse files
committed
serialized throwable fixup
1 parent 31bd759 commit 65cc7cd

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/utils/ExceptionUtils.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,12 @@ private static String getExceptionMessage(Throwable throwable, int level) {
9393
}
9494

9595
if (throwable instanceof SerializedThrowable) {
96+
var serialized = ((SerializedThrowable) throwable);
9697
var deserialized =
97-
((SerializedThrowable) throwable)
98-
.deserializeError(Thread.currentThread().getContextClassLoader());
98+
serialized.deserializeError(Thread.currentThread().getContextClassLoader());
9999
if (deserialized == throwable) {
100-
return "Unknown Error (SerializedThrowable)";
100+
var msg = serialized.getMessage();
101+
return msg != null ? msg : serialized.getOriginalErrorClassName();
101102
} else {
102103
return getExceptionMessage(deserialized, level);
103104
}

flink-kubernetes-operator/src/test/java/org/apache/flink/kubernetes/operator/utils/ExceptionUtilsTest.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,25 @@ void testGetExceptionMessage_differentKindsOfExceptions() {
5252

5353
@Test
5454
void testSerializedThrowableError() {
55-
var serializedException = new SerializedThrowable(new NonSerializableException());
56-
assertThat(ExceptionUtils.getExceptionMessage(serializedException))
57-
.isEqualTo("Unknown Error (SerializedThrowable)");
55+
assertThat(
56+
ExceptionUtils.getExceptionMessage(
57+
new SerializedThrowable(new NonSerializableException("Message"))))
58+
.isEqualTo(String.format("%s: Message", NonSerializableException.class.getName()));
59+
60+
assertThat(
61+
ExceptionUtils.getExceptionMessage(
62+
new SerializedThrowable(new NonSerializableException())))
63+
.isEqualTo(NonSerializableException.class.getName());
5864
}
5965

6066
private static class NonSerializableException extends Exception {
67+
68+
public NonSerializableException(String message) {
69+
super(message);
70+
}
71+
72+
public NonSerializableException() {}
73+
6174
private void writeObject(java.io.ObjectOutputStream stream) throws IOException {
6275
throw new IOException();
6376
}

0 commit comments

Comments
 (0)