Skip to content

Commit 98fc302

Browse files
committed
Fix NullPointer when selecting the strategy for handling paramters
1 parent 8bb89c9 commit 98fc302

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/service/NativeParametersHandling.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.hibernate.reactive.logging.impl.Log;
1717
import org.hibernate.reactive.logging.impl.LoggerFactory;
1818
import org.hibernate.service.spi.ServiceRegistryImplementor;
19+
import org.hibernate.sql.ast.internal.ParameterMarkerStrategyStandard;
1920
import org.hibernate.sql.ast.spi.ParameterMarkerStrategy;
2021
import org.hibernate.type.descriptor.jdbc.JdbcType;
2122

@@ -38,18 +39,26 @@ public ParameterMarkerStrategy initiateService(Map<String, Object> configuration
3839
final Dialect dialect = registry.getService( JdbcServices.class ).getDialect();
3940
final Dialect realDialect = DialectDelegateWrapper.extractRealDialect( dialect );
4041
final ParameterMarkerStrategy renderer = recommendRendered( realDialect );
41-
LOG.debug( "Initializing service JdbcParameterRenderer with implementation: " + renderer.getClass() );
42+
LOG.debugf( "Initializing service JdbcParameterRenderer with implementation: %s", renderer.getClass() );
4243
return renderer;
4344
}
4445

46+
/**
47+
* Given a {@link Dialect}, returns the recommended {@link ParameterMarkerStrategy}.
48+
* <p>
49+
* The default strategy is {@link ParameterMarkerStrategyStandard}.
50+
* </p>
51+
* @return the selected strategy for the dialect, never null
52+
*/
4553
private ParameterMarkerStrategy recommendRendered(Dialect realDialect) {
4654
if ( realDialect instanceof PostgreSQLDialect ) {
4755
return new PostgreSQLNativeParameterMarkers();
4856
}
4957
//TBD : Implementations for other DBs
50-
else {
51-
return realDialect.getNativeParameterMarkerStrategy();
52-
}
58+
59+
return realDialect.getNativeParameterMarkerStrategy() == null
60+
? ParameterMarkerStrategyStandard.INSTANCE
61+
: realDialect.getNativeParameterMarkerStrategy();
5362
}
5463

5564
@Override

0 commit comments

Comments
 (0)