-
Notifications
You must be signed in to change notification settings - Fork 9.3k
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
Sitemap fix error in case of image with null Title or Caption #37462
base: 2.4-develop
Are you sure you want to change the base?
Conversation
Hi @RPrudon. Thank you for your contribution! Add the comment under your pull request to deploy test or vanilla Magento instance:
❗ Automated tests can be triggered manually with an appropriate comment:
Allowed build names are:
You can find more information about the builds here For more details, review the Code Contributions documentation. |
@magento run all tests |
The requested builds are added to the queue. You should be able to see them here within a few minutes. Please message the #magento-devops slack channel if they don't show in a reasonable amount of time and a representative will look into any issues. |
@magento run all tests |
The requested builds are added to the queue. You should be able to see them here within a few minutes. Please message the #magento-devops slack channel if they don't show in a reasonable amount of time and a representative will look into any issues. |
@magento run all tests |
The requested builds are added to the queue. You should be able to see them here within a few minutes. Please message the #magento-devops slack channel if they don't show in a reasonable amount of time and a representative will look into any issues. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @RPrudon,
Thanks for the contribution!
The changes look good to us. Just one thing, please cover this change with some automated tests like unit test.
Thanks
@magento run all tests |
@magento run all tests |
@magento run all tests |
@magento run all tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @RPrudon @engcom-Dash,
Please refer to my review comments and also please cover the changes with some automated tests.
Thanks
@@ -576,9 +576,9 @@ protected function _getSitemapRow($url, $lastmod = null, $changefreq = null, $pr | |||
foreach ($images->getCollection() as $image) { | |||
$row .= '<image:image>'; | |||
$row .= '<image:loc>' . $this->_escaper->escapeUrl($image->getUrl()) . '</image:loc>'; | |||
$row .= '<image:title>' . $this->escapeXmlText($images->getTitle()) . '</image:title>'; | |||
$row .= '<image:title>' . $this->escapeXmlText((string)$images->getTitle()) . '</image:title>'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it should be $image
instead of $images
$row .= '<image:title>' . $this->escapeXmlText((string)$images->getTitle()) . '</image:title>'; | |
$row .= '<image:title>' . $this->escapeXmlText((string)$image->getTitle()) . '</image:title>'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@engcom-Hotel, I have analyzed and debugged the code and found that the current implementation is correct. The reason is that $image does not contain any title; the title is associated only with $images. This is why, in the current codebase, it is $images instead of $image. Please have a look at below screenshots:
Additionally, for the caption, we are already checking if it is null, so IMO, we don't need the typecasting, as the error mentioned is related to null values only.
Since the changes is related to typecasting only and we already have automated tests for this class, could you please review the implementation?
Thanks!
cc: @RPrudon
@magento create issue |
Hello @RPrudon, Thanks for the contributions! The changes look good to me, but could you please provide a scenario where we would encounter the mentioned error in the description? I tried generating the sitemap multiple times, but I didn't encounter any errors. Additionally, you mentioned that this error occurs when we have a null caption, but this scenario is already handled on line 580. If you could provide more details or a specific scenario where these errors occur, it would help us understand the issue more clearly. Thanks again! |
Description (*)
This patch fixes
Patch to fix Argument 1 passed to Magento\Sitemap\Model\Sitemap::escapeXmlText() must be of the type string, null given
when the given title or caption arenull
.Manual testing scenarios (*)
null
.Contribution checklist (*)
Resolved issues: