Bug #48083

AbstractCompositeValidator validatedInstancesContainer grows continuosly

Added by Tarcisio Fedrizzi about 2 years ago. Updated about 2 years ago.

Status:Closed Start date:2013-05-09
Priority:Must have Due date:
Assigned To:- % Done:

0%

Category:-
Target version:-
Affected Flow version:(any)

Description

Hi,
there is a problem in the way AbstractCompositeValidators passes the validatedInstacesContainer to its children.

The code of the addValidator method says:

  98         public function addValidator(\TYPO3\Flow\Validation\Validator\ValidatorInterface $validator) {
  99                 if ($validator instanceof ObjectValidatorInterface) {
 100                         $validator->setValidatedInstancesContainer = $this->validatedInstancesContainer;
 101                 }
 102                 $this->validators->attach($validator);
 103         }

this is wrong because it overwrites the setValidatedInstancesContainer method of the attached validators. Moreover the code doesn't pass the validatedInstancesContainer down to the validators it contains. This causes the contained validators to create their personal instance of validatedInstancesContainer that keeps growing. This renders impossible to work on big collections of objects due to excessive memory consumption.

In the attached patch I moved the correct version of this code to the validate methods of ConjuntionValidator and DisjunctionValidator. I think that it would be safe to pass the validatedInstancesContainer in the setValidatedInstancesContainer of AbstractCompositeValidators. However given that the resolution of validator could be made more dynamic I preferred calling the setValidatedInstancesContainer just before the validation of CompositeValidators children in the validate method.

Regards,
Tarcisio Fedrizzi.

compositeValidatorSetValidatedInstancesContainerFix.patch Magnifier (2.6 kB) Tarcisio Fedrizzi, 2013-05-09 11:02


Related issues

duplicates TYPO3.Flow - Bug #48093: AbstractCompositeValidators memory consumption continuous... New 2013-05-09

History

#1 Updated by Tarcisio Fedrizzi about 2 years ago

Please close this report because I moved it in the right place.

Sorry for the error,
Thanks,
Tarcisio Fedrizzi.

#2 Updated by Bastian Waidelich about 2 years ago

  • Status changed from New to Closed

Tarcisio Fedrizzi wrote:

Sorry for the error,

No problem and thanks for moving the issue

Also available in: Atom PDF