Task #46340

Improve validation to speed up Flow

Added by Karsten Dambekalns over 2 years ago. Updated over 2 years ago.

Status:Resolved Start date:2013-03-15
Priority:Should have Due date:
Assigned To:- % Done:

100%

Category:Validation
Target version:TYPO3 Flow Base Distribution - 2.0
Sprint: Has patch:No
PHP Version: Complexity:

Related issues

related to TYPO3.Flow - Bug #50585: Validation fails if nested properties of same type are pr... Resolved 2013-07-31

Associated revisions

Revision 90b4bc42
Added by Steffen Ritter over 2 years ago

[TASK] Optimize Validation to improve performance

The validation result object traverses the whole result-
tree everytime someone checks for errors, notices or
warnings.

This patch refactors the Result object to cache the result
internally and propagate changes to the parent result object.

In addition the heavy merge actions use this cached
information to prevent unneccesary operations.

Furthermore the validators are reworked to prevent
superfluous object creation.

Releases: 2.0, master
Resolves: #46340
Change-Id: I52ddadd84c39ba67fe87d5b82917360ad24f607e

Revision e7ac72fe
Added by Steffen Ritter over 2 years ago

[TASK] Optimize Validation to improve performance

The validation result object traverses the whole result-
tree every time someone checks for errors, notices or
warnings.

This patch refactors the Result object to cache the result
internally and propagate changes to the parent result object.

In addition the heavy merge actions use this cached
information to prevent unnecessary operations.

Furthermore the validators are reworked to prevent
superfluous object creation.

Releases: 2.0, master
Resolves: #46340
Change-Id: I52ddadd84c39ba67fe87d5b82917360ad24f607e

Revision 261972d9
Added by Steffen Ritter over 2 years ago

[TASK] Optimize Validation to improve performance

The validation result object traverses the whole result-
tree everytime someone checks for errors, notices or
warnings.

This patch refactors the Result object to cache the result
internally and propagate changes to the parent result object.

In addition the heavy merge actions use this cached
information to prevent unneccesary operations.

Furthermore the validators are reworked to prevent
superfluous object creation.

Releases: 2.0, master
Resolves: #46340
Change-Id: I52ddadd84c39ba67fe87d5b82917360ad24f607e

Revision 09756f36
Added by Helmut Hummel almost 2 years ago

[BUGFIX] Fix validation if nested properties of same type are present

The performance optimization in #46340
changed the isValid() method of the
GenericObjectValidator to use the result
property while recursing through the properties
of the to be validated object.

Since GenericObjectValidator is reused, it could
be the case that this result set is reset to
empty value.

Revert this change and set the result property
after all properties of the to be validated
object are validated.

Resolves: #50585
Related: #46340
Releases: 2.0, master
Change-Id: I178ac02e7bcfc9748b9da4a74f51314a34717e66

Revision a6e5f720
Added by Helmut Hummel over 1 year ago

[BUGFIX] Fix validation if nested properties of same type are present

The performance optimization in #46340
changed the isValid() method of the
GenericObjectValidator to use the result
property while recursing through the properties
of the to be validated object.

Since GenericObjectValidator is reused, it could
be the case that this result set is reset to
empty value.

Revert this change and set the result property
after all properties of the to be validated
object are validated.

Resolves: #50585
Related: #46340
Releases: 2.0, master
Change-Id: I178ac02e7bcfc9748b9da4a74f51314a34717e66

History

#1 Updated by Gerrit Code Review over 2 years ago

  • Status changed from Accepted to Under Review

Patch set 5 for branch master has been pushed to the review server.
It is available at https://review.typo3.org/18908

#2 Updated by Gerrit Code Review over 2 years ago

Patch set 6 for branch master has been pushed to the review server.
It is available at https://review.typo3.org/18908

#3 Updated by Gerrit Code Review over 2 years ago

Patch set 7 for branch master has been pushed to the review server.
It is available at https://review.typo3.org/18908

#4 Updated by Gerrit Code Review over 2 years ago

Patch set 8 for branch master has been pushed to the review server.
It is available at https://review.typo3.org/18908

#5 Updated by Steffen Ritter over 2 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#6 Updated by Gerrit Code Review over 2 years ago

  • Status changed from Resolved to Under Review

Patch set 1 for branch 2.0 has been pushed to the review server.
It is available at https://review.typo3.org/19109

#7 Updated by Gerrit Code Review over 2 years ago

Patch set 2 for branch 2.0 has been pushed to the review server.
It is available at https://review.typo3.org/19109

#8 Updated by Gerrit Code Review over 2 years ago

Patch set 1 for branch composer has been pushed to the review server.
It is available at https://review.typo3.org/19365

#9 Updated by Steffen Ritter over 2 years ago

  • Status changed from Under Review to Resolved

Also available in: Atom PDF