diff --git a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java index 6a8f8833e..83a761604 100644 --- a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java +++ b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java @@ -1115,9 +1115,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert visitDefaultValue(parameterTypes[i], mv); } - copyByProperty.getDefaultMask().forEach(i -> { - mv.visitIntInsn(Opcodes.SIPUSH, i); - }); + copyByProperty.getDefaultMask().forEach(mv::visitLdcInsn); mv.visitInsn(Opcodes.ACONST_NULL); diff --git a/src/test/java/org/springframework/data/mapping/model/PersistentPropertyAccessorTests.java b/src/test/java/org/springframework/data/mapping/model/PersistentPropertyAccessorTests.java index e8e01a46c..a3b0c6a53 100644 --- a/src/test/java/org/springframework/data/mapping/model/PersistentPropertyAccessorTests.java +++ b/src/test/java/org/springframework/data/mapping/model/PersistentPropertyAccessorTests.java @@ -140,6 +140,19 @@ public class PersistentPropertyAccessorTests { assertThatThrownBy(() -> accessor.setProperty(property, 1)).isInstanceOf(UnsupportedOperationException.class); } + @Test // DATACMNS-1451 + public void shouldSet17thImmutableNullableKotlinProperty() { + + With33Args bean = new With33Args(); + PersistentPropertyAccessor accessor = propertyAccessorFunction.apply(bean); + SamplePersistentProperty property = getProperty(bean, "17"); + + accessor.setProperty(property, "foo"); + + With33Args updated = (With33Args) accessor.getBean(); + assertThat(updated.get17()).isEqualTo("foo"); + } + @Test // DATACMNS-1322 public void shouldWitherProperty() {