Skip to content

Commit cc93dbe

Browse files
authored
Merge pull request ehrbase#904 from ehrbase/feature/CDR-431_Prevent_NPE_in_QueryProcessor_buildExplain
Prevent NPE in QueryProcessor::buildExplain
2 parents 3597d2d + f6c956c commit cc93dbe

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

service/src/main/java/org/ehrbase/aql/sql/QueryProcessor.java

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,47 @@
1919

2020
import static org.ehrbase.jooq.pg.Tables.ENTRY;
2121

22-
import java.util.*;
22+
import java.util.ArrayList;
23+
import java.util.Collection;
24+
import java.util.HashMap;
25+
import java.util.Iterator;
26+
import java.util.List;
27+
import java.util.Map;
28+
import java.util.Objects;
29+
import java.util.Optional;
30+
import java.util.Set;
2331
import org.ehrbase.aql.compiler.Contains;
2432
import org.ehrbase.aql.compiler.Statements;
2533
import org.ehrbase.aql.compiler.TopAttributes;
2634
import org.ehrbase.aql.definition.I_VariableDefinition;
2735
import org.ehrbase.aql.definition.LateralJoinDefinition;
2836
import org.ehrbase.aql.definition.Variables;
29-
import org.ehrbase.aql.sql.binding.*;
37+
import org.ehrbase.aql.sql.binding.JoinBinder;
38+
import org.ehrbase.aql.sql.binding.LimitBinding;
39+
import org.ehrbase.aql.sql.binding.OrderByField;
40+
import org.ehrbase.aql.sql.binding.SelectBinder;
41+
import org.ehrbase.aql.sql.binding.SuperQuery;
42+
import org.ehrbase.aql.sql.binding.VariableDefinitions;
43+
import org.ehrbase.aql.sql.binding.WhereMultiFields;
3044
import org.ehrbase.aql.sql.postprocessing.RawJsonTransform;
31-
import org.ehrbase.aql.sql.queryimpl.*;
45+
import org.ehrbase.aql.sql.queryimpl.DurationFormatter;
46+
import org.ehrbase.aql.sql.queryimpl.IQueryImpl;
47+
import org.ehrbase.aql.sql.queryimpl.MultiFields;
48+
import org.ehrbase.aql.sql.queryimpl.MultiFieldsMap;
49+
import org.ehrbase.aql.sql.queryimpl.MultiFieldsMultiMap;
50+
import org.ehrbase.aql.sql.queryimpl.TemplateMetaData;
3251
import org.ehrbase.aql.sql.queryimpl.attribute.JoinSetup;
3352
import org.ehrbase.dao.access.interfaces.I_DomainAccess;
3453
import org.ehrbase.service.IntrospectService;
35-
import org.jooq.*;
54+
import org.jooq.Condition;
55+
import org.jooq.DSLContext;
56+
import org.jooq.JoinType;
57+
import org.jooq.Operator;
58+
import org.jooq.Param;
3659
import org.jooq.Record;
60+
import org.jooq.Result;
61+
import org.jooq.Select;
62+
import org.jooq.SelectQuery;
3763
import org.jooq.conf.Settings;
3864
import org.jooq.impl.DSL;
3965

@@ -380,9 +406,10 @@ private List<List<String>> buildExplain(Select<?> select) {
380406
String sql = pretty.render(select);
381407
List<String> details = new ArrayList<>();
382408
details.add(sql);
383-
for (Param<?> parameter : select.getParams().values()) {
384-
details.add(parameter.getValue().toString());
385-
}
409+
select.getParams().values().stream()
410+
.map(Param::getValue)
411+
.map(Objects::toString)
412+
.forEach(details::add);
386413
explainList.add(details);
387414
return explainList;
388415
}

0 commit comments

Comments
 (0)