Skip to content

Commit 524a4b6

Browse files
committed
Only return complete accessor name when accessor has a backing field
1 parent 26d6588 commit 524a4b6

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/TypeElementMembers.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ private boolean isSetterReturnType(ExecutableElement method) {
168168
}
169169

170170
private String getAccessorName(String methodName) {
171-
if (this.isRecord) {
171+
if (this.isRecord && this.fields.containsKey(methodName)) {
172172
return methodName;
173173
}
174174
String name;

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
* @author Andy Wilkinson
7575
* @author Kris De Volder
7676
* @author Jonas Keßler
77+
* @author Moritz Halbritter
7778
*/
7879
class ConfigurationMetadataAnnotationProcessorTests extends AbstractMetadataGenerationTests {
7980

@@ -504,4 +505,21 @@ void multiConstructorRecordProperties(@TempDir File temp) throws IOException {
504505
assertThat(metadata).doesNotHave(Metadata.withProperty("multi.some-integer"));
505506
}
506507

508+
@Test
509+
@EnabledForJreRange(min = JRE.JAVA_16)
510+
void recordWithGetter(@TempDir File temp) throws IOException {
511+
File exampleRecord = new File(temp, "ExampleRecord.java");
512+
try (PrintWriter writer = new PrintWriter(new FileWriter(exampleRecord))) {
513+
writer.println(
514+
"@org.springframework.boot.configurationsample.ConfigurationProperties(\"record-with-getter\")");
515+
writer.println("@org.springframework.boot.configurationsample.ConstructorBinding");
516+
writer.println("public record ExampleRecord(String alpha) {");
517+
writer.println(" public String getBravo() { return alpha; }");
518+
writer.println("}");
519+
}
520+
ConfigurationMetadata metadata = compile(exampleRecord);
521+
assertThat(metadata).has(Metadata.withProperty("record-with-getter.alpha"));
522+
assertThat(metadata).doesNotHave(Metadata.withProperty("record-with-getter.bravo"));
523+
}
524+
507525
}

0 commit comments

Comments
 (0)