Bug #86276

Counting LazyObjectStorages doesn't return the expected result

Added by Christian Richter about 1 year ago. Updated 12 months ago.

Status:
New
Priority:
Should have
Category:
Extbase + l10n
Start date:
2018-09-16
Due date:
% Done:

0%

TYPO3 Version:
8
PHP Version:
7.2
Tags:
extbase,fluid,objectstorage,translation
Complexity:
Is Regression:
Sprint Focus:

Description

I'm having trouble with the counting of `ObjectStorages` and just wanted to report an obscure behaviour I encountered.
Iterating over records in Fluid works as expected, but counting them is not possible as you can see in the attached screenshot. The Debugger and every manually invoked "counting" (in fluid, or in the controller code) of the `members`-property returns 18 which is the correct count of members including the translations.
But I'm only interested in the "real" count, as you can see, there are only 6 objects in the members' `LazyObjectStorage` and the corresponding list is only rendering 6 items in the default language.

This problem is LazyObjectStorage specific, removing the `@lazy` annotations does return an ObjectStorage with the same members but the correct count.

The TCA annotation looks like the following, although I think Extbase doesn't really respect that at that point:

        'members' => [
            'exclude' => 1,
            'l10n_mode' => 'exclude',
            'label' => 'LLL:EXT:cmb_members/Resources/Private/Language/locallang_db.xlf:tx_cmbmembers_domain_model_orgunit.members',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectMultipleSideBySide',
                'foreign_table' => 'tx_cmbmembers_domain_model_member',
                'foreign_field' => 'status',
                'foreign_table_where' => 'AND tx_cmbmembers_domain_model_member.sys_language_uid === 0',
            ],
        ],

wrong_count_LazyObjectStorage.png View - Unexpected count-result of LazyObjectStorage (210 KB) Christian Richter, 2018-09-16 16:56

History

#1 Updated by Christian Richter about 1 year ago

I'm sorry @Tymoteusz Motylewski, I didn't really want to assign someone directly...
If it was some kind of auto-assignment, I'm happy to provide more details!

Have a nice Sunday!

#2 Updated by Tymoteusz Motylewski about 1 year ago

Hi Christian
Thanks for your report.
Every fix for extbase query and persistence requires to have a functional tests in order to be merged.

Are you able to provide an functional test showing the issue (e.g. based on blog_example fixture extension from extbase)? I can guide you through the process if neede.

If not, then can you provide a minimal code example showing the wrong behavior and what you would expect?
This would help a lot!

#3 Updated by Susanne Moog about 1 year ago

  • Target version changed from 9 LTS to Candidate for patchlevel

#4 Updated by Christian Richter about 1 year ago

I would love to create more helpful bug reports in the future!
If you have the motivation and most of all the time to guide me through the process, that would be awesome!
Best
Christian

#5 Updated by Tymoteusz Motylewski 12 months ago

Please reach out to me on slack Christian.

Also available in: Atom PDF