Why is this JQL filtering out issues without a label?

Esther Strom, ACP-JA April 14, 2016

I have the following filter:

 

(assignee = currentUser() OR Developer = currentUser()) AND assignee = currentUser() AND status not in (Closed, Done) AND project not in (Loyalty, JIRA) ORDER BY fixVersion ASC, status ASC, priority DESC

This works correctly. I now want to add a clause to exclude tickets with a certain label, so I did this:

 

(assignee = currentUser() OR Developer = currentUser()) AND assignee = currentUser() AND status not in (Closed, Done) AND project not in (Loyalty, JIRA) AND labels not in (jira-dev-test) ORDER BY fixVersion ASC, status ASC, priority DESC

 

Now it's filtering out issues with that label, but also filtering out all issues without a label. What am I doing wrong? 

2 answers

1 accepted

1 vote
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 14, 2016

It's because most human languages are fuzzy and imprecise, and we translate badly when we're talking to the computers.

You have three possibilities here:

  • No labels set
  • Label jira-dev-test is present
  • Labels are present (like penguin and flibble) but not jira-dev-test

Your clause is precise, but expressed in English, it says "look at the labels and tell me when jira-dev-test is not there".  If the issue has no labels, there's nothing to look at.  So it can't tell you that jira-dev-test is not there.  You need to catch the "no label" fact somehow, and the nice clear way to do it is:

 AND (labels not in (jira-dev-test) or labels is empty)

0 votes
Jobin Kuruvilla [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 14, 2016

Add "Labels is EMPTY" clause as well.

(assignee = currentUser() OR Developer = currentUser()) AND assignee = currentUser() AND status not in (Closed, Done) AND project not in (Loyalty, JIRA) AND (labels is EMPTY OR labels not in (jira-dev-test)) ORDER BY fixVersion ASC, status ASC, priority DESC

Suggest an answer

Log in or Sign up to answer