#1571 - NPE in cacheable bean with embeddedid on delete

This commit is contained in:
rob bygrave
2018-12-05 23:03:15 +13:00
parent 0405ceb96c
commit e4088c5fbe
16 changed files with 142 additions and 62 deletions
@@ -1,14 +1,14 @@
package io.ebeaninternal.server.query;
import io.ebean.util.JdbcClose;
import io.ebean.CountedValue;
import io.ebean.util.JdbcClose;
import io.ebeaninternal.api.SpiProfileTransactionEvent;
import io.ebeaninternal.api.SpiQuery;
import io.ebeaninternal.api.SpiTransaction;
import io.ebeaninternal.server.core.OrmQueryRequest;
import io.ebeaninternal.server.deploy.BeanDescriptor;
import io.ebeaninternal.server.type.RsetDataReader;
import io.ebeaninternal.server.type.ScalarType;
import io.ebeaninternal.server.type.ScalarDataReader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +60,7 @@ class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent {
private int rowCount;
private final ScalarType<?> scalarType;
private final ScalarDataReader<?> reader;
private final boolean containsCounts;
@@ -77,7 +77,7 @@ class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent {
this.desc = request.getBeanDescriptor();
this.predicates = predicates;
this.containsCounts = containsCounts;
this.scalarType = queryPlan.getSingleAttributeScalarType();
this.reader = queryPlan.getSingleAttributeScalarType();
query.setGeneratedSql(sql);
}
@@ -106,7 +106,7 @@ class CQueryFetchSingleAttribute implements SpiProfileTransactionEvent {
List<Object> result = new ArrayList<>();
while (dataReader.next()) {
Object value = scalarType.read(dataReader);
Object value = reader.read(dataReader);
if (containsCounts) {
value = new CountedValue<>(value, dataReader.getLong());
}