Public bug reported: I spent ages trying to work out why my roots() method was appearing to succeed but never emitting the itemsReceived() signal on the ItemJob.
Inside the class, you have: try { validate_(md); auto item = ItemImpl::make_item(method_, md, account_impl_); items.append(item); } catch (StorageError const& exc) { // Bad metadata received from provider, validate_() or make_item() have logged it. } So items that fail the validation silently disappear with no indication that there is a problem. Unlike what the comment says, there was no logging and the ItemJob didn't transition to the Error state. This is not okay. And later on, it seems the itemsReceived signal is only conditionally emitted: if (!items.isEmpty()) { Q_EMIT public_instance_->itemsReady(items); } Would it be a problem to always emit this signal? Having it conditional like this made me chase my tail trying to work out if there was a problem with the way I'd connected to the signal, or if it might be getting emitted after statusChanged. ** Affects: storage-framework (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1644577 Title: ItemListJobImpl silently throws away items that fail client side validation To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/storage-framework/+bug/1644577/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs