Closed Bug 696186 Opened 11 years ago Closed 3 years ago

canceling folder delete throws an exception


(MailNews Core :: Backend, defect)

Not set


(Not tracked)

Thunderbird 72.0


(Reporter: aceman, Assigned: iannbugzilla)


(Whiteboard: [regression:TB??])


(1 file, 1 obsolete file)

If I delete a folder that is the target of a filter (move messages to) I get the prompt "Are you sure you want to delete the folder X?", then I get prompt "Deleting the folder 'X' will disable its associated filter(s). Are you sure you want to delete the folder?" After canceling this prompt the following exception is thrown:

Error: uncaught exception: [Exception... "Component returned failure code: 0x8055001a [nsIMsgFolder.deleteSubFolders]"  nsresult: "0x8055001a (<unknown>)"  location: "JS frame :: chrome://messenger/content/folderPane.js :: ftc_delete :: line 2231"  data: no]

This is a normal operation. Can't the negative answer in the dialog be handled cleanly?
Component: Mail Window Front End → Folder and Message Lists
QA Contact: front-end → folders-message-lists
This seems to have gotten broken since the report. In current TB18 I get this:
1. I attempt to delete a folder.
2. I get the prompt "Are you sure you want to delete the folder X?"
3. I confirm and the folder is moved to Trash without further prompts.
4. The filter is automatically updated to point to the folder in Trash.
5. Deleting the folder from Trash goes without any warning.
6. The filter now points to nowhere. Editing it shows an empty folder picker as the Move to target. Clicking OK says I must select a target folder.

The exception in comment 0 still occurs but I must Cancel the first warning of "Are you sure you want to delete the folder X?".

Maybe this got broken by the pluggable mailstores changes?
> Maybe this got broken by the pluggable mailstores changes?
still see it?
Whiteboard: [regression:TB??]

Still happening

Component: Folder and Message Lists → Backend
Product: Thunderbird → MailNews Core
Version: 8 Branch → 8

So nsMsgLocalMailFolder::CopyFolderLocal in mailnews/local/src/nsLocalMailFolder.cpp returns NS_MSG_ERROR_COPY_FOLDER_ABORTED when the user cancels the copy.
This means nsMsgLocalMailFolder::DeleteSubFolders returns this result causing the error message in the console.

OS: Linux → All
Hardware: x86 → All
Assignee: nobody → iann_bugzilla
Ever confirmed: true
Attached patch Swallow the abort (obsolete) — Splinter Review

Potentially we might want to log this in some way (through MOZ_LOG perhaps?)

Attachment #9111061 - Flags: review?(acelists)

Might be better to have this within the if (folder) statement and set rv = NS_OK
Or just put a try/catch around the call to DeleteSubFolders

Comment on attachment 9111061 [details] [diff] [review]
Swallow the abort

Review of attachment 9111061 [details] [diff] [review]:

Thanks, NS_MSG_ERROR_COPY_FOLDER_ABORTED seems to only be generated when user aborts the deletion.

The question is whether it is OK to report success from the nsMsgLocalMailFolder::DeleteSubFolders() when no folders were deleted. Caller may expect deletion was done when it wasn't (whatever the reason).
Maybe we should catch the error higher in the stack, maybe in the UI, in folderPane.js?
Attached patch try and catchSplinter Review

Let's use a try/catch around this caller instead (similar to the test in test_nsIMsgLocalMailFolder.js).

Attachment #9111061 - Attachment is obsolete: true
Attachment #9111061 - Flags: review?(acelists)
Attachment #9111779 - Flags: review?(acelists)
Comment on attachment 9111779 [details] [diff] [review]
try and catch

Review of attachment 9111779 [details] [diff] [review]:

We already have such treatment at .
Attachment #9111779 - Flags: review?(acelists) → review+

Pushed by
canceling folder delete throws an exception r=aceman

Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 72.0
You need to log in before you can comment on or make changes to this bug.