Skip to content

Commit c57f6a2

Browse files
ArtDuclaude
andcommitted
fix(mapping): add fallback for null formatId in tuple format injection
Add fallback logic to injectFormatIntoTuples, getTuplesWithInjectedFormat, and getBatchTuplesWithInjectedFormat methods. When formatId is null and only one format is available, use that format instead of null. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent ea945f7 commit c57f6a2

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

tarantool-jackson-mapping/src/main/java/io/tarantool/mapping/TarantoolJacksonMappingWithTargetClass.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ public static <T> Tuple<T> getTupleWithInjectedFormat(TarantoolResponse<List<Tup
4949
}
5050
Integer formatId = tuple.getFormatId();
5151
List<Field> format = formats.get(formatId);
52+
if (formatId == null && formats.size() == 1) {
53+
format = formats.values().stream().findFirst().get();
54+
}
5255
tuple.setFormat(format);
5356
return tuple;
5457
}
@@ -93,6 +96,9 @@ private static <T> SelectResponse<List<Tuple<T>>> injectFormatIntoTuples(
9396
for (Tuple<?> tuple : resp.get()) {
9497
Integer formatId = tuple.getFormatId();
9598
List<Field> format = formats.get(formatId);
99+
if (formatId == null && formats.size() == 1) {
100+
format = formats.values().stream().findFirst().get();
101+
}
96102
tuple.setFormat(format);
97103
}
98104
}
@@ -139,6 +145,9 @@ private static <T> CrudBatchResponse<List<Tuple<T>>> getBatchTuplesWithInjectedF
139145
for (Tuple<?> tuple : tuples) {
140146
Integer formatId = tuple.getFormatId();
141147
List<Field> format = formats.get(formatId);
148+
if (formatId == null && formats.size() == 1) {
149+
format = formats.values().stream().findFirst().get();
150+
}
142151
tuple.setFormat(format);
143152
}
144153
}
@@ -153,6 +162,9 @@ private static <T> List<Tuple<T>> getTuplesWithInjectedFormat(
153162
for (Tuple<?> tuple : tuples) {
154163
Integer formatId = tuple.getFormatId();
155164
List<Field> format = formats.get(formatId);
165+
if (formatId == null && formats.size() == 1) {
166+
format = formats.values().stream().findFirst().get();
167+
}
156168
tuple.setFormat(format);
157169
}
158170
}

tarantool-jackson-mapping/src/main/java/io/tarantool/mapping/TarantoolJacksonMappingWithoutTargetType.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ private static SelectResponse<List<Tuple<List<?>>>> injectFormatIntoTuples(
104104
for (Tuple<?> tuple : resp.get()) {
105105
Integer formatId = tuple.getFormatId();
106106
List<Field> format = formats.get(formatId);
107+
if (formatId == null && formats.size() == 1) {
108+
format = formats.values().stream().findFirst().get();
109+
}
107110
tuple.setFormat(format);
108111
}
109112
}
@@ -187,6 +190,9 @@ private static List<Tuple<List<?>>> getTuplesWithInjectedFormat(
187190
for (Tuple<?> tuple : tuples) {
188191
Integer formatId = tuple.getFormatId();
189192
List<Field> format = formats.get(formatId);
193+
if (formatId == null && formats.size() == 1) {
194+
format = formats.values().stream().findFirst().get();
195+
}
190196
tuple.setFormat(format);
191197
}
192198
}
@@ -216,6 +222,9 @@ private static CrudBatchResponse<List<Tuple<List<?>>>> getBatchTuplesWithInjecte
216222
for (Tuple<?> tuple : tuples) {
217223
Integer formatId = tuple.getFormatId();
218224
List<Field> format = formats.get(formatId);
225+
if (formatId == null && formats.size() == 1) {
226+
format = formats.values().stream().findFirst().get();
227+
}
219228
tuple.setFormat(format);
220229
}
221230
}

0 commit comments

Comments
 (0)