diff --git a/src/main/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitch.java b/src/main/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitch.java index c1efc233ff..b9e81db9ca 100644 --- a/src/main/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitch.java +++ b/src/main/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitch.java @@ -212,7 +212,7 @@ public J.Return visitReturn(J.Return return_, AtomicBoolean atomicBoolean) { arguments[i++] = getPattern(instanceOf); arguments[i++] = getStatement(entry.getValue()); } - switchBody.append("default -> #{any()};\n"); + switchBody.append(nullCheckedParameter != null ? "default" : "case null, default").append(" -> #{any()};\n"); if (else_ != null) { arguments[i] = getStatement(else_); } else { diff --git a/src/test/java/org/openrewrite/java/migrate/UpgradeToJava21Test.java b/src/test/java/org/openrewrite/java/migrate/UpgradeToJava21Test.java index 35074ab352..4470a0e4d1 100644 --- a/src/test/java/org/openrewrite/java/migrate/UpgradeToJava21Test.java +++ b/src/test/java/org/openrewrite/java/migrate/UpgradeToJava21Test.java @@ -61,7 +61,7 @@ private static double convertToDouble(Object value) { case String string -> Double.parseDouble(string); case Integer integer -> integer.doubleValue(); case Long long1 -> long1.doubleValue(); - default -> (double) value; + case null, default -> (double) value; }; } } diff --git a/src/test/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitchTest.java b/src/test/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitchTest.java index e495e41d96..4b817369e1 100644 --- a/src/test/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitchTest.java +++ b/src/test/java/org/openrewrite/java/migrate/lang/IfElseIfConstructToSwitchTest.java @@ -128,7 +128,7 @@ static String formatter(Object obj) { String str = "String"; formatted = String.format("%s %s", str, s); } - default -> formatted = "unknown"; + case null, default -> formatted = "unknown"; } return formatted; } @@ -331,7 +331,7 @@ static String formatter(Object obj) { String str = "String"; formatted = String.format("%s %s", str, s); } - default -> formatted = "unknown"; + case null, default -> formatted = "unknown"; } return formatted; } @@ -436,7 +436,7 @@ static String describe(Object obj) { case Dog d -> result = "dog"; case Cat c -> result = "cat"; case Bird b -> result = "bird"; - default -> result = "unknown"; + case null, default -> result = "unknown"; } return result; }