Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUGFIX:BP:11.5] Retry Uri Building after exception #3789

Conversation

dkd-friedrich
Copy link
Member

Backport of #3562


What this pr does

When there are route enhancers defined for a page containing the Solr search plugin, e.g. to realize pretty URLs for the search term, filters or pagination, there are issues with the URI caching that utilizes placeholders. Placeholders usually do not get replaced, leading to the issue described in #2984.

This PR implements a solution for route enhancers that define requirements in their parameters. The requirements are checked against the placeholders, leading to an exception. This exception is caught and it will then proceed the URI building with the original arguments instead of the placeholder arguments.

Fixes: #2984

How to test

Scenario 1: Speaking URL for search term

See #2984

Scenario 2: Speaking URLs for pagination

  1. Set up the following route enhancer (set the page containing the Solr list plugin in limitToPages):
routeEnhancers:
  SolrPagination:
    type: Plugin
    namespace: 'tx_solr'
    routePath: '/{page}'
    defaults:
      page: 0
    requirements:
      page: '\d+'
    limitToPages: [1]
  1. Clear TYPO3 cache
  2. Open the Solr list plugin (e.g. https://mysite.dev/search)
  3. The pagination links should be pretty (e.g. https://mysite.dev/search/1, https://mysite.dev/search/2)

When there are route enhancers defined for a page containing
the Solr search plugin, e.g. to realize pretty URLs for the
search term, filters or pagination, there are issues with
the URI caching that utilizes placeholders.

Route Enhancers should specify the expected format using the
requirements setting of the route enhancer parameters. This
will then lead to an exception, which is caught and will then
proceed the URI building with the original arguments instead
of the placeholder arguments.

Ports: TYPO3-Solr#3562
Resolves: TYPO3-Solr#2984
@dkd-friedrich dkd-friedrich force-pushed the bugfix/release-11.5.x/2984-uribuilding_retry_on_error branch from 91b51d6 to 4da4343 Compare September 20, 2023 08:00
Copy link
Collaborator

@dkd-kaehm dkd-kaehm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dkd-friedrich dkd-friedrich merged commit 3026d30 into TYPO3-Solr:release-11.5.x Sep 20, 2023
8 checks passed
@dkd-friedrich dkd-friedrich deleted the bugfix/release-11.5.x/2984-uribuilding_retry_on_error branch September 20, 2023 08:51
dkd-friedrich added a commit to dkd-friedrich/ext-solr that referenced this pull request Nov 6, 2023
This is a maintenance release for TYPO3 11.5 that contains the folling changes:

- [TASK] Fix CI 2023.09.11 on release-11.5.x by @dkd-kaehm in TYPO3-Solr#3777
- [BUGFIX:BP:11.5] Fix EXT:solr route enhancer by @dkd-friedrich in TYPO3-Solr#3743
- [BUG] Fix detection of "draft records" in workspaces by @baschny in TYPO3-Solr#3642
- [BUGFIX] Do not index translations on default language in languages free mode by @dkd-kaehm in TYPO3-Solr#3786
- [BUGFIX:BP:11.5] Retry Uri Building after exception by @dkd-friedrich in TYPO3-Solr#3789
- [BUGFIX] Delete index documents without available site by @dkd-kaehm in TYPO3-Solr#3778
- [TASK:BP:11.5] Ensure recursive page update on page movement by @dkd-friedrich in TYPO3-Solr#3771
- [FEATURE:BP:11.5] Add index queue indices by @dkd-friedrich in TYPO3-Solr#3791
- [TASK:BP:11.5] Migrate top.fsMod by @dkd-friedrich in TYPO3-Solr#3795
- [BUGFIX:BP:11.5] Return value getPageItemChangedTime() must be of the type int by @dkd-kaehm in TYPO3-Solr#3813
- [TASK:BP:11.5] Remove duplicate withHeader() by @dkd-kaehm in TYPO3-Solr#3626
- [BUGFIX:BP:11.5] Do not list cores twice in Index Inspector by @dkd-kaehm in TYPO3-Solr#3818
- [BUGFIX] Fixes multiple sortings by @BastiLu in TYPO3-Solr#3762
- [BUGFIX:BP:11.5] Fix missing frontend.typoscript request attribute while indexing by @dkd-kaehm in TYPO3-Solr#3822
- [BUGFIX] Prevent indexing error on missing 'foreignLabelField' by @kitzberger in TYPO3-Solr#3740
- [BUGFIX:BP:11.5] Force score to float by @dkd-kaehm in TYPO3-Solr#3824
- [BUGFIX:BP:11.5] Fix possible notice by @dkd-kaehm in TYPO3-Solr#3825
- [DOC:BP:11.5] Add FAQ how to generate URLs to restricted pages by @dkd-kaehm in TYPO3-Solr#3826
- [BUGFIX:BP:11.5] Handle float values in options facet parser by @dkd-kaehm in TYPO3-Solr#3827
- [BUGFIX:BP:11.5] handle localizations with un-available tsfe more gracefully by @dkd-kaehm in TYPO3-Solr#3832
- [TASK] Update the version matrix by @dkd-friedrich in TYPO3-Solr#3859

Please read the release notes:
https://github.com/TYPO3-Solr/ext-solr/releases/tag/11.5.4

---

How to Get Involved

There are many ways to get involved with Apache Solr for TYPO3:

* Submit bug reports and feature requests on GitHub
* Ask or help or answer questions in our Slack channel
* Provide patches through pull requests or review and comment on
existing pull requests
* Go to www.typo3-solr.com or call dkd to sponsor the ongoing
development of Apache Solr for TYPO3

Support us by becoming an EB partner:
https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/

or call:
+49 (0)69 - 2475218 0
dkd-friedrich added a commit to dkd-friedrich/ext-solr that referenced this pull request Nov 6, 2023
This is a maintenance release for TYPO3 11.5 and the last release that supports Apache Solr 8.11. Next EXT:solr release for TYPO3 11.5 will be 11.6.0, it
will contain support for Apache Solr 9 and some breaking improvements.

11.5.4 contains the folling changes:

- [TASK] Fix CI 2023.09.11 on release-11.5.x by @dkd-kaehm in TYPO3-Solr#3777
- [BUGFIX:BP:11.5] Fix EXT:solr route enhancer by @dkd-friedrich in TYPO3-Solr#3743
- [BUG] Fix detection of "draft records" in workspaces by @baschny in TYPO3-Solr#3642
- [BUGFIX] Do not index translations on default language in languages free mode by @dkd-kaehm in TYPO3-Solr#3786
- [BUGFIX:BP:11.5] Retry Uri Building after exception by @dkd-friedrich in TYPO3-Solr#3789
- [BUGFIX] Delete index documents without available site by @dkd-kaehm in TYPO3-Solr#3778
- [TASK:BP:11.5] Ensure recursive page update on page movement by @dkd-friedrich in TYPO3-Solr#3771
- [FEATURE:BP:11.5] Add index queue indices by @dkd-friedrich in TYPO3-Solr#3791
- [TASK:BP:11.5] Migrate top.fsMod by @dkd-friedrich in TYPO3-Solr#3795
- [BUGFIX:BP:11.5] Return value getPageItemChangedTime() must be of the type int by @dkd-kaehm in TYPO3-Solr#3813
- [TASK:BP:11.5] Remove duplicate withHeader() by @dkd-kaehm in TYPO3-Solr#3626
- [BUGFIX:BP:11.5] Do not list cores twice in Index Inspector by @dkd-kaehm in TYPO3-Solr#3818
- [BUGFIX] Fixes multiple sortings by @BastiLu in TYPO3-Solr#3762
- [BUGFIX:BP:11.5] Fix missing frontend.typoscript request attribute while indexing by @dkd-kaehm in TYPO3-Solr#3822
- [BUGFIX] Prevent indexing error on missing 'foreignLabelField' by @kitzberger in TYPO3-Solr#3740
- [BUGFIX:BP:11.5] Force score to float by @dkd-kaehm in TYPO3-Solr#3824
- [BUGFIX:BP:11.5] Fix possible notice by @dkd-kaehm in TYPO3-Solr#3825
- [DOC:BP:11.5] Add FAQ how to generate URLs to restricted pages by @dkd-kaehm in TYPO3-Solr#3826
- [BUGFIX:BP:11.5] Handle float values in options facet parser by @dkd-kaehm in TYPO3-Solr#3827
- [BUGFIX:BP:11.5] handle localizations with un-available tsfe more gracefully by @dkd-kaehm in TYPO3-Solr#3832
- [TASK] Update the version matrix by @dkd-friedrich in TYPO3-Solr#3860

Please read the release notes:
https://github.com/TYPO3-Solr/ext-solr/releases/tag/11.5.4

---

How to Get Involved

There are many ways to get involved with Apache Solr for TYPO3:

* Submit bug reports and feature requests on GitHub
* Ask or help or answer questions in our Slack channel
* Provide patches through pull requests or review and comment on
existing pull requests
* Go to www.typo3-solr.com or call dkd to sponsor the ongoing
development of Apache Solr for TYPO3

Support us by becoming an EB partner:
https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/

or call:
+49 (0)69 - 2475218 0

Resolves: TYPO3-Solr#3782
dkd-friedrich added a commit to dkd-friedrich/ext-solr that referenced this pull request Nov 6, 2023
This is a maintenance release for TYPO3 11.5 and the last release that supports Apache Solr 8.11. Next EXT:solr release for TYPO3 11.5 will be 11.6.0, it
will contain support for Apache Solr 9 and some breaking improvements.

11.5.4 contains the following changes:

- [TASK] Fix CI 2023.09.11 on release-11.5.x by @dkd-kaehm in TYPO3-Solr#3777
- [BUGFIX:BP:11.5] Fix EXT:solr route enhancer by @dkd-friedrich in TYPO3-Solr#3743
- [BUG] Fix detection of "draft records" in workspaces by @baschny in TYPO3-Solr#3642
- [BUGFIX] Do not index translations on default language in languages free mode by @dkd-kaehm in TYPO3-Solr#3786
- [BUGFIX:BP:11.5] Retry Uri Building after exception by @dkd-friedrich in TYPO3-Solr#3789
- [BUGFIX] Delete index documents without available site by @dkd-kaehm in TYPO3-Solr#3778
- [TASK:BP:11.5] Ensure recursive page update on page movement by @dkd-friedrich in TYPO3-Solr#3771
- [FEATURE:BP:11.5] Add index queue indices by @dkd-friedrich in TYPO3-Solr#3791
- [TASK:BP:11.5] Migrate top.fsMod by @dkd-friedrich in TYPO3-Solr#3795
- [BUGFIX:BP:11.5] Return value getPageItemChangedTime() must be of the type int by @dkd-kaehm in TYPO3-Solr#3813
- [TASK:BP:11.5] Remove duplicate withHeader() by @dkd-kaehm in TYPO3-Solr#3626
- [BUGFIX:BP:11.5] Do not list cores twice in Index Inspector by @dkd-kaehm in TYPO3-Solr#3818
- [BUGFIX] Fixes multiple sortings by @BastiLu in TYPO3-Solr#3762
- [BUGFIX:BP:11.5] Fix missing frontend.typoscript request attribute while indexing by @dkd-kaehm in TYPO3-Solr#3822
- [BUGFIX] Prevent indexing error on missing 'foreignLabelField' by @kitzberger in TYPO3-Solr#3740
- [BUGFIX:BP:11.5] Force score to float by @dkd-kaehm in TYPO3-Solr#3824
- [BUGFIX:BP:11.5] Fix possible notice by @dkd-kaehm in TYPO3-Solr#3825
- [DOC:BP:11.5] Add FAQ how to generate URLs to restricted pages by @dkd-kaehm in TYPO3-Solr#3826
- [BUGFIX:BP:11.5] Handle float values in options facet parser by @dkd-kaehm in TYPO3-Solr#3827
- [BUGFIX:BP:11.5] handle localizations with un-available tsfe more gracefully by @dkd-kaehm in TYPO3-Solr#3832
- [TASK] Update the version matrix by @dkd-friedrich in TYPO3-Solr#3860

Please read the release notes:
https://github.com/TYPO3-Solr/ext-solr/releases/tag/11.5.4

---

How to Get Involved

There are many ways to get involved with Apache Solr for TYPO3:

* Submit bug reports and feature requests on GitHub
* Ask or help or answer questions in our Slack channel
* Provide patches through pull requests or review and comment on
existing pull requests
* Go to www.typo3-solr.com or call dkd to sponsor the ongoing
development of Apache Solr for TYPO3

Support us by becoming an EB partner:
https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/

or call:
+49 (0)69 - 2475218 0

Resolves: TYPO3-Solr#3782
dkd-friedrich added a commit that referenced this pull request Nov 6, 2023
This is a maintenance release for TYPO3 11.5 and the last release that supports Apache Solr 8.11. Next EXT:solr release for TYPO3 11.5 will be 11.6.0, it
will contain support for Apache Solr 9 and some breaking improvements.

11.5.4 contains the following changes:

- [TASK] Fix CI 2023.09.11 on release-11.5.x by @dkd-kaehm in #3777
- [BUGFIX:BP:11.5] Fix EXT:solr route enhancer by @dkd-friedrich in #3743
- [BUG] Fix detection of "draft records" in workspaces by @baschny in #3642
- [BUGFIX] Do not index translations on default language in languages free mode by @dkd-kaehm in #3786
- [BUGFIX:BP:11.5] Retry Uri Building after exception by @dkd-friedrich in #3789
- [BUGFIX] Delete index documents without available site by @dkd-kaehm in #3778
- [TASK:BP:11.5] Ensure recursive page update on page movement by @dkd-friedrich in #3771
- [FEATURE:BP:11.5] Add index queue indices by @dkd-friedrich in #3791
- [TASK:BP:11.5] Migrate top.fsMod by @dkd-friedrich in #3795
- [BUGFIX:BP:11.5] Return value getPageItemChangedTime() must be of the type int by @dkd-kaehm in #3813
- [TASK:BP:11.5] Remove duplicate withHeader() by @dkd-kaehm in #3626
- [BUGFIX:BP:11.5] Do not list cores twice in Index Inspector by @dkd-kaehm in #3818
- [BUGFIX] Fixes multiple sortings by @BastiLu in #3762
- [BUGFIX:BP:11.5] Fix missing frontend.typoscript request attribute while indexing by @dkd-kaehm in #3822
- [BUGFIX] Prevent indexing error on missing 'foreignLabelField' by @kitzberger in #3740
- [BUGFIX:BP:11.5] Force score to float by @dkd-kaehm in #3824
- [BUGFIX:BP:11.5] Fix possible notice by @dkd-kaehm in #3825
- [DOC:BP:11.5] Add FAQ how to generate URLs to restricted pages by @dkd-kaehm in #3826
- [BUGFIX:BP:11.5] Handle float values in options facet parser by @dkd-kaehm in #3827
- [BUGFIX:BP:11.5] handle localizations with un-available tsfe more gracefully by @dkd-kaehm in #3832
- [TASK] Update the version matrix by @dkd-friedrich in #3860

Please read the release notes:
https://github.com/TYPO3-Solr/ext-solr/releases/tag/11.5.4

---

How to Get Involved

There are many ways to get involved with Apache Solr for TYPO3:

* Submit bug reports and feature requests on GitHub
* Ask or help or answer questions in our Slack channel
* Provide patches through pull requests or review and comment on
existing pull requests
* Go to www.typo3-solr.com or call dkd to sponsor the ongoing
development of Apache Solr for TYPO3

Support us by becoming an EB partner:
https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/

or call:
+49 (0)69 - 2475218 0

Resolves: #3782
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants