Bug 439786 - Folder default identity not applied if identity UOID > 0x7fffffff
Summary: Folder default identity not applied if identity UOID > 0x7fffffff
Status: RESOLVED FIXED
Alias: None
Product: kmail2
Classification: Applications
Component: folders (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-12 16:47 UTC by Thiago Macieira
Modified: 2021-07-13 05:23 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 5.18.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thiago Macieira 2021-07-12 16:47:31 UTC
SUMMARY
The default email identity in any given folder in an IMAP account should be the identity selected in that IMAP account's configuration. But it's not, it is defaulting back to the global default.

The same KMail version has no problem on an older installation. So there must be some hidden configuration somewhere that is preventing this from taking effect. This is either an UX issue or a bug somewhere.

STEPS TO REPRODUCE
1. Add at least two email identities (KMail Settings > Accounts > Identities)
2. Add a new IMAP account, with an account default identity different from the global default identity
3. Go to the new account's Inbox folder and create new email

OBSERVED RESULT
The new email's identity is the global default identity. If you check the folder's properties, you will see that "Use default identity" is checked but the selected identity is not the one from the account, but the global default.

EXPECTED RESULT
The new email should be using the per-account identity. The folder dialog should be showing that account with the "Use default identity" checked.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Thiago Macieira 2021-07-12 17:10:30 UTC
Found it: the UOIDs are "negative":

Old machine, where it worked:

$ grep AccountIdentity= ~/.config/akonadi_imap*rc
/home/tjmaciei/.config/akonadi_imap_resource_0rc:AccountIdentity=1049262210
/home/tjmaciei/.config/akonadi_imap_resource_1rc:AccountIdentity=1804289383
/home/tjmaciei/.config/akonadi_imap_resource_4rc:AccountIdentity=1503410781
/home/tjmaciei/.config/akonadi_imap_resource_5rc:AccountIdentity=1503410781

New machine, where it didn't work:

$ grep AccountIdentity= ~/.config/akonadi_imap*rc
/home/tjmaciei/.config/akonadi_imap_resource_1rc:AccountIdentity=-936766798
/home/tjmaciei/.config/akonadi_imap_resource_3rc:AccountIdentity=-12177331
$ sed -n '/AccountIdentity=/s///p' akonadi_imap_resource_*rc | xargs printf '%x\n'
ffffffffc82a12b2
ffffffffff46304d

The negative numbers do match as two's complements in 32-bit of two of the identities:

$ grep uoid emailidentities
uoid=2117733104
uoid=4282789965
uoid=3358200498
uoid=2643197268
$ sed -n '/uoid=/s///p' emailidentities | xargs printf '%x\n'
7e3a0af0
ff46304d
c82a12b2
9d8bfd54

After manually modifying the files so the high (sign) bit is not set, the setting does work.
Comment 2 Laurent Montel 2021-07-13 05:23:00 UTC
Git commit 23de26f167a6b7b9213a2105a28c9507808fbbf3 by Laurent Montel.
Committed on 13/07/2021 at 05:11.
Pushed by mlaurent into branch 'release/21.08'.

Fix Bug 439786 - Folder default identity not applied if identity UOID > 0x7fffffff

FIXED-IN: 5.18.0

M  +1    -1    src/identitymanager.cpp

https://invent.kde.org/pim/kidentitymanagement/commit/23de26f167a6b7b9213a2105a28c9507808fbbf3