Skip to content

Commit 6418150

Browse files
committed
HHH-18439 Account for null values in query cache hit
Also, solve an assertion error in query result type check when selecting `null` literals
1 parent f5c5aa9 commit 6418150

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/internal/SqmUtil.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1121,7 +1121,10 @@ protected static void verifyResultType(Class<?> resultClass, @Nullable SqmExpres
11211121
}
11221122

11231123
final JavaType<?> selectionExpressibleJavaType = selectionExpressible.getExpressibleJavaType();
1124-
assert selectionExpressibleJavaType != null;
1124+
if ( selectionExpressibleJavaType == null ) {
1125+
// nothing we can validate
1126+
return;
1127+
}
11251128

11261129
final Class<?> selectionExpressibleJavaTypeClass = selectionExpressibleJavaType.getJavaTypeClass();
11271130
if ( selectionExpressibleJavaTypeClass == Object.class ) {

hibernate-core/src/main/java/org/hibernate/sql/results/jdbc/internal/JdbcValuesCacheHit.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,12 @@ public Object getCurrentRowValue(int valueIndex) {
176176
if ( valueIndexesToCacheIndexes == null ) {
177177
return ( (Object[]) row )[valueIndex];
178178
}
179-
else if ( row.getClass() != Object[].class ) {
180-
assert valueIndexesToCacheIndexes[valueIndex] == 0;
181-
return row;
179+
else if ( row instanceof Object[] ) {
180+
return ( (Object[]) row )[valueIndexesToCacheIndexes[valueIndex]];
182181
}
183182
else {
184-
return ( (Object[]) row )[valueIndexesToCacheIndexes[valueIndex]];
183+
assert valueIndexesToCacheIndexes[valueIndex] == 0;
184+
return row;
185185
}
186186
}
187187

0 commit comments

Comments
 (0)