From 3e3db6d352883293a1cbcaeb342bb63493309cc2 Mon Sep 17 00:00:00 2001 From: Andrea Boriero Date: Mon, 20 Jul 2020 09:08:05 +0100 Subject: [PATCH] Fix SessionImpl#buildLockOptions causing NPE --- .../java/org/hibernate/internal/SessionImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java index e359b2b027..bc9cf275b9 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -2919,12 +2919,15 @@ public void refresh(Object entity, LockModeType lockModeType, Map properties) { - final LockOptions output = this.lockOptions.makeCopy(); - output.setLockMode( LockModeTypeHelper.getLockMode( lockModeType ) ); - if ( properties != null ) { - LockOptionsHelper.applyPropertiesToLockOptions( properties, () -> output ); + LockOptions lockOptions = new LockOptions(); + if ( this.lockOptions != null ) { //otherwise the default LockOptions constructor is the same as DEFAULT_LOCK_OPTIONS + LockOptions.copy( this.lockOptions, lockOptions ); } - return output; + lockOptions.setLockMode( LockModeTypeHelper.getLockMode( lockModeType ) ); + if ( properties != null ) { + LockOptionsHelper.applyPropertiesToLockOptions( properties, () -> lockOptions ); + } + return lockOptions; } @Override