Cannot global search at all if "watch" tag is used

VERIFIED DUPLICATE of bug 609941

Status

--
major
VERIFIED DUPLICATE of bug 609941
8 years ago
8 years ago

People

(Reporter: bugzilla, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

8 years ago
Step to Reproduce:
 1. Define "watch" tag in Preferences -> Display -> Tags -> Add.
 2. Add "watch" tag to any messages.
 3. Restart Thunderbird (or wait until gloda db become up-to-date?).
 4. Global search with any strings or any mail address
 5. Search result tab will be shown with "Searching…" forever...
 6. Open Error Console, and you'll see following error:

Error: groups[valId].push is not a function
Source File: file:/// ... /Thunderbird.app/Contents/MacOS/modules/gloda/facet.js
Line: 378

Expected Result:
Gloda search should be shown even when we use "watch" tag.

I'll attach workaround patch.
(Reporter)

Comment 1

8 years ago
Created attachment 508369 [details] [diff] [review]
workaround patch

patch to avoid error just checking push() method existence

Sorry this is just workaround, not complete one.
(Reporter)

Comment 2

8 years ago
http://mxr.mozilla.org/comm-central/source/mailnews/db/gloda/modules/facet.js#390
365   facetComplexItems: function(aItems) {
   ...
380       for each (let [, val] in Iterator(vals)) {
   ...
389         if (groupMap.hasOwnProperty(valId)) {
390           groups[valId].push(item);
391         }
392         else {
393           groupMap[valId] = val;
394           groups[valId] = [item];
395           this.groupCount++;
396         }
397       }
398     }

As far as checked, valId will be "watch" and groups[valId] will be the watch native method (of Object.prototype, maybe). In that case groups[valId] is not Array but Function and it never have push() method.

groupMap seems to contains tag name list and valId should be tag name. But if the valId is same as native properties name (if user use tags named like "watch", "valueOf", "toString" etc), groups[valId] will be native properites, not Array generated in line 394.

Sorry I cannot take enough time to understand the code and write appropriate patch now. I hope this is enough information you can understand and fix the problem.
Exactly which version of Thunderbird are you using? (available from Help -> About).

This looks like a duplicate of bug 609941 that has been fixed for 3.1.8 which is due out next week.
(Reporter)

Comment 4

8 years ago
Aha... sorry, it looks like yes.

I'll check a little more with other profiles tomorrow.
Once I confirmed, I'll mark this bug as duplicate.
(Reporter)

Comment 5

8 years ago
I confirmed bug 609941 solved this problem.

Sorry, the patch was not actually I tested. I changed with 3.1.7:
-        if (valId in groupMap) {
+        if (valId in groupMap && groups[valId].push) {
but when I write patch (with hg files), I didn't noticed about the diff...
Status: NEW → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 609941
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.