File tree Expand file tree Collapse file tree 2 files changed +22
-2
lines changed
flink-kubernetes-operator/src
main/java/org/apache/flink/kubernetes/operator/reconciler/diff
test/java/org/apache/flink/kubernetes/operator/reconciler/diff Expand file tree Collapse file tree 2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -86,8 +86,14 @@ private void appendFields(final Class<?> clazz) {
8686 var leftField = readField (field , before , true );
8787 var rightField = readField (field , after , true );
8888 if (field .getName ().equals (FLINK_CONFIGURATION_PROPERTY_NAME )) {
89- leftField = ((ConfigObjectNode ) leftField ).asFlatMap ();
90- rightField = ((ConfigObjectNode ) rightField ).asFlatMap ();
89+ leftField =
90+ leftField == null
91+ ? null
92+ : ((ConfigObjectNode ) leftField ).asFlatMap ();
93+ rightField =
94+ rightField == null
95+ ? null
96+ : ((ConfigObjectNode ) rightField ).asFlatMap ();
9197 }
9298
9399 if (field .isAnnotationPresent (SpecDiff .Config .class )
Original file line number Diff line number Diff line change 2222import org .apache .flink .configuration .PipelineOptions ;
2323import org .apache .flink .kubernetes .operator .TestUtils ;
2424import org .apache .flink .kubernetes .operator .api .diff .DiffType ;
25+ import org .apache .flink .kubernetes .operator .api .spec .ConfigObjectNode ;
2526import org .apache .flink .kubernetes .operator .api .spec .FlinkDeploymentSpec ;
2627import org .apache .flink .kubernetes .operator .api .spec .FlinkSessionJobSpec ;
2728import org .apache .flink .kubernetes .operator .api .spec .FlinkVersion ;
@@ -402,6 +403,19 @@ public void testSavepointNonceDiff() {
402403 assertEquals (0 , diff .getNumDiffs ());
403404 }
404405
406+ @ Test
407+ public void testNullFlinkConfiguration () {
408+ var left = new FlinkDeploymentSpec ();
409+ left .setFlinkConfiguration ((ConfigObjectNode ) null );
410+ var right = new FlinkDeploymentSpec ();
411+
412+ // This should fail with NullPointerException because there's no null check
413+ // in ReflectiveDiffBuilder when casting flinkConfiguration to ConfigObjectNode
414+ var diff =
415+ new ReflectiveDiffBuilder <>(KubernetesDeploymentMode .NATIVE , left , right ).build ();
416+ assertEquals (DiffType .IGNORE , diff .getType ());
417+ }
418+
405419 @ Value
406420 private static class TestClass {
407421 boolean [] f0 ;
You can’t perform that action at this time.
0 commit comments