From 5c5f9506fcf7ae3de0e44d329a30d74ec74ea321 Mon Sep 17 00:00:00 2001 From: Andrea Di Cesare Date: Mon, 29 Jan 2024 11:26:13 +0100 Subject: [PATCH] :bug: Fix NPE on Optional Stages when ?avar qparam is missing https://github.com/SoftInstigate/restheart/issues/500 --- .../org/restheart/mongodb/utils/StagesInterpolator.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/commons/src/main/java/org/restheart/mongodb/utils/StagesInterpolator.java b/commons/src/main/java/org/restheart/mongodb/utils/StagesInterpolator.java index bd6e0f335..7d7bc7ea5 100644 --- a/commons/src/main/java/org/restheart/mongodb/utils/StagesInterpolator.java +++ b/commons/src/main/java/org/restheart/mongodb/utils/StagesInterpolator.java @@ -138,6 +138,12 @@ private static void checkIfVar(STAGE_OPERATOR stageOperator, BsonDocument stage) } private static boolean stageApplies(STAGE_OPERATOR stageOperator, BsonDocument stage, BsonDocument avars) { + // false if request does not include the ?avars qparam + // see issue https://github.com/SoftInstigate/restheart/issues/500 + if (avars == null) { + return false; + } + var vars = stage.get(stageOperator.name()).asArray().get(0); if (vars.isString()) {