NPE during setup protobuf StringValue
Opened this issue · 0 comments
lvitaly commented
Hello,
I tried to use sfm-jooq
and sfm-converter-protobuf
(v8.2.3) along with gRPC server generated by io.grpc:protoc-gen-grpc-java:1.39.0
and com.google.protobuf:protoc:3.17.2
(JVM 11). I got this exception.
java.lang.NullPointerException: null
at com.google.protobuf.StringValue$Builder.setValue(StringValue.java:502)
at com.google.protobuf.StringValue.of(StringValue.java:570)
at org.simpleflatmapper.reflect.generated.com.google.protobuf.AsmInstantiatorStringValueFromStringIntovalue_I2.newInstance(Unknown Source)
at org.simpleflatmapper.reflect.generated.com.google.protobuf.AsmInstantiatorStringValueFromStringIntovalue_I2.newInstance(Unknown Source)
at org.simpleflatmapper.map.getter.InstantiatorContextualGetter.get(InstantiatorContextualGetter.java:18)
at org.simpleflatmapper.map.getter.ContextualGetterBiFunction.apply(ContextualGetterBiFunction.java:65)
at org.simpleflatmapper.reflect.generated.com.jl.grpc.AsmBiInstantiatorBuilderFromResultSetAndMappingContextIntocityAndiataAndicaoAndidAndnameAndCountryCodeIdAndPlaceId_Ic.newInstance(Unknown Source)
at org.simpleflatmapper.reflect.generated.com.jl.grpc.AsmBiInstantiatorBuilderFromResultSetAndMappingContextIntocityAndiataAndicaoAndidAndnameAndCountryCodeIdAndPlaceId_Ic.newInstance(Unknown Source)
at org.simpleflatmapper.map.mapper.AbstractMapper.map(AbstractMapper.java:22)
at org.simpleflatmapper.map.mapper.ContextualSourceFieldMapperImpl.map(ContextualSourceFieldMapperImpl.java:38)
at org.simpleflatmapper.map.mapper.JoinMapperEnumerable.next(JoinMapperEnumerable.java:40)
at org.simpleflatmapper.map.mapper.AbstractEnumerableMapper.forEach(AbstractEnumerableMapper.java:33)
at org.simpleflatmapper.jooq.SelectQueryMapper.asList(SelectQueryMapper.java:52)
... 6 common frames omitted
Issued from
public Builder setValue(
java.lang.String value) {
if (value == null) {
throw new NullPointerException();
On a high level, all looks fine. But is there a way to eliminate these null
values from setup or is this a bug in the tool?
My code sample
public CompletableFuture<Iterable<Airport>> getAirports() {
return CompletableFuture.supplyAsync(() -> {
final var mapper = SelectQueryMapperFactory
.newInstance()
.useAsm(false)
.newMapper(Airport.class);
final var select = ctx.select(
AIRPORTS.ID,
AIRPORTS.ICAO,
AIRPORTS.NAME,
PLACES.CITY
)
.from(AIRPORTS)
.innerJoin(PLACES).on(AIRPORTS.PLACE_ID.eq(PLACES.ID));
return mapper.asList(select);
});
}