Skip to content

Commit 1486b13

Browse files
committed
Merge pull request #46551 from Kguswo
* pr/46551: Polish "Do not set primitive default value for unsupported expressions" Do not set primitive default value for unsupported expressions Closes gh-46551
2 parents b34d120 + 079bf98 commit 1486b13

File tree

4 files changed

+14
-1
lines changed

4 files changed

+14
-1
lines changed

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/fieldvalues/javac/JavaCompilerFieldValuesParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ private Object getValue(String variableType, ExpressionTree expression, Object d
209209
}
210210
return null;
211211
}
212-
return defaultValue;
212+
return null;
213213
}
214214

215215
private Object getFactoryValue(ExpressionTree expression, Object factoryValue) {

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/fieldvalues/AbstractFieldValuesProcessorTests.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,15 @@ void getFieldValues() {
6161
assertThat(values.get("bool")).isEqualTo(true);
6262
assertThat(values.get("boolNone")).isEqualTo(false);
6363
assertThat(values.get("boolConst")).isEqualTo(true);
64+
assertThat(values.get("boolInverted")).isNull();
6465
assertThat(values.get("boolObject")).isEqualTo(true);
6566
assertThat(values.get("boolObjectNone")).isNull();
6667
assertThat(values.get("boolObjectConst")).isEqualTo(true);
6768
assertThat(values.get("integer")).isEqualTo(1);
6869
assertThat(values.get("integerNone")).isEqualTo(0);
6970
assertThat(values.get("integerConst")).isEqualTo(2);
71+
assertThat(values.get("integerArithmetic")).isNull();
72+
assertThat(values.get("integerMax")).isNull();
7073
assertThat(values.get("integerObject")).isEqualTo(3);
7174
assertThat(values.get("integerObjectNone")).isNull();
7275
assertThat(values.get("integerObjectConst")).isEqualTo(4);
@@ -84,6 +87,7 @@ void getFieldValues() {
8487
assertThat(values.get("stringArrayConst")).isEqualTo(new Object[] { "OK", "KO" });
8588
assertThat(values.get("stringArrayConstElements")).isEqualTo(new Object[] { "c" });
8689
assertThat(values.get("integerArray")).isEqualTo(new Object[] { 42, 24 });
90+
assertThat(values.get("intArrayUnsupportedExpression")).isNull();
8791
assertThat(values.get("unknownArray")).isNull();
8892
assertThat(values.get("durationNone")).isNull();
8993
assertThat(values.get("durationNanos")).isEqualTo("5ns");

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/fieldvalues/FieldValues.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class FieldValues {
6464

6565
private boolean boolConst = BOOLEAN_CONST;
6666

67+
private boolean boolInverted = !false;
68+
6769
private Boolean boolObject = Boolean.TRUE;
6870

6971
private Boolean boolObjectNone;
@@ -76,6 +78,10 @@ public class FieldValues {
7678

7779
private int integerConst = INTEGER_CONST;
7880

81+
private int integerArithmetic = 10 * 10;
82+
83+
private int integerMax = Math.max(10, 20);
84+
7985
private Integer integerObject = 3;
8086

8187
private Integer integerObjectNone;
@@ -110,6 +116,8 @@ public class FieldValues {
110116

111117
private Integer[] integerArray = new Integer[] { 42, 24 };
112118

119+
private int[] intArrayUnsupportedExpression = new int[] { 10 + 10 };
120+
113121
private UnknownElementType[] unknownArray = new UnknownElementType[] { new UnknownElementType() };
114122

115123
private Duration durationNone;

src/checkstyle/checkstyle-suppressions.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,5 @@
8585
<suppress files="MyInterface\.java" checks="InterfaceIsType" />
8686
<suppress files="SpringBootBanner\.java" checks="SpringLeadingWhitespace" />
8787
<suppress files="LoadTimeWeaverAwareConsumerContainers\.java" checks="InterfaceIsType" />
88+
<suppress files="FieldValues\.java" checks="SimplifyBooleanExpression" />
8889
</suppressions>

0 commit comments

Comments
 (0)