mirror of
https://github.com/DependencyTrack/dependency-track.git
synced 2025-10-19 16:03:19 +00:00
Fix NPE in doesProjectExist
when project version is null
Regression introduced in #2966 Signed-off-by: nscuro <nscuro@protonmail.com>
This commit is contained in:
parent
69d1248d19
commit
5534d3aace
2 changed files with 30 additions and 2 deletions
|
@ -1151,13 +1151,23 @@ final class ProjectQueryManager extends QueryManager implements IQueryManager {
|
|||
@Override
|
||||
public boolean doesProjectExist(final String name, final String version) {
|
||||
final Query<Project> query = pm.newQuery(Project.class);
|
||||
try {
|
||||
if (version != null) {
|
||||
query.setFilter("name == :name && version == :version");
|
||||
query.setNamedParameters(Map.of(
|
||||
"name", name,
|
||||
"version", version
|
||||
));
|
||||
query.setResult("count(this)");
|
||||
} else {
|
||||
// Version is optional for projects, but using null
|
||||
// for parameter values bypasses the query compilation cache.
|
||||
// https://github.com/DependencyTrack/dependency-track/issues/2540
|
||||
query.setFilter("name == :name && version == null");
|
||||
query.setNamedParameters(Map.of(
|
||||
"name", name
|
||||
));
|
||||
}
|
||||
query.setResult("count(this)");
|
||||
try {
|
||||
return query.executeResultUnique(Long.class) > 0;
|
||||
} finally {
|
||||
query.closeAll();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue