Skip to content

Commit 2e0ff41

Browse files
committed
fix: guard null in GlobalVariableStore lock/unlock
$gc()/$g() JS APIs call lock() on keys never registered via putSync(), causing NPE; throw IllegalArgumentException with clear message instead Signed-off-by: Nico Piel <nico.piel@hotmail.de>
1 parent 5423492 commit 2e0ff41

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

server/src/com/mirth/connect/server/util/GlobalVariableStore.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,19 @@ public String toString() {
6969
// ##### SYNC METHODS #####
7070

7171
public void lock(String key) {
72-
globalVariableSyncMap.get(key).getLock().lock();
72+
SyncObject obj = globalVariableSyncMap.get(key);
73+
if (obj == null) {
74+
throw new IllegalArgumentException("Sync key not found: " + key);
75+
}
76+
obj.getLock().lock();
7377
}
7478

7579
public void unlock(String key) {
76-
globalVariableSyncMap.get(key).getLock().unlock();
80+
SyncObject obj = globalVariableSyncMap.get(key);
81+
if (obj == null) {
82+
throw new IllegalArgumentException("Sync key not found: " + key);
83+
}
84+
obj.getLock().unlock();
7785
}
7886

7987
public boolean containsKeySync(String key) {

0 commit comments

Comments
 (0)