Skip to content

An XML comment node as parameter in widget.xml fails with fatal error #3882

@adragus-inviqa

Description

@adragus-inviqa

Steps to reproduce

  1. Add a new widget declaration in some widget.xml, but add a comment as a parameter:
<parameters>
    <parameter name="title_text" xsi:type="text" visible="true" required="true" sort_order="20">
        <label translate="true">Title text</label>
    </parameter>
    <!-- it's a comment; what can go wrong? -->
</parameters>

Expected result

  1. When creating a new widget through admin, a single param should appear.

Actual result

  1. Nothing appears: the ajax grabbing the widgets responds with 500 (stack trace below).

I guess this check needs to be changed to if (in_array($parameter->nodeName, ['#text', '#comment'])) or exclude anything but an element node.

[23-Mar-2016 13:04:13 UTC] PHP Fatal error:  Call to a member function getNamedItem() on null in /vagrant/vendor/magento/module-widget/Model/Config/Converter.php on line 54
[23-Mar-2016 13:04:13 UTC] PHP Stack trace:
[23-Mar-2016 13:04:13 UTC] PHP   1. {main}() /vagrant/pub/index.php:0
[23-Mar-2016 13:04:13 UTC] PHP   2. Magento\Framework\App\Bootstrap->run() /vagrant/pub/index.php:37
[23-Mar-2016 13:04:13 UTC] PHP   3. Magento\Framework\App\Http->launch() /vagrant/vendor/magento/framework/App/Bootstrap.php:258
[23-Mar-2016 13:04:13 UTC] PHP   4. Magento\Framework\App\FrontController\Interceptor->dispatch() /vagrant/vendor/magento/framework/App/Http.php:115
[23-Mar-2016 13:04:13 UTC] PHP   5. Magento\Framework\App\FrontController\Interceptor->___callPlugins() /vagrant/var/generation/Magento/Framework/App/FrontController/Interceptor.php:26
[23-Mar-2016 13:04:13 UTC] PHP   6. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Interceptor.php:141}() /vagrant/vendor/magento/framework/Interception/Interceptor.php:141
[23-Mar-2016 13:04:13 UTC] PHP   7. Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch() /vagrant/vendor/magento/framework/Interception/Interceptor.php:141
[23-Mar-2016 13:04:13 UTC] PHP   8. Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}() /vagrant/vendor/magento/framework/Module/Plugin/DbStatusValidator.php:69
[23-Mar-2016 13:04:13 UTC] PHP   9. Magento\Framework\Interception\Chain\Chain->invokeNext() /vagrant/vendor/magento/framework/Interception/Interceptor.php:136
[23-Mar-2016 13:04:13 UTC] PHP  10. Magento\Framework\App\FrontController\Interceptor->___callParent() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:70
[23-Mar-2016 13:04:13 UTC] PHP  11. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Interceptor.php:74}() /vagrant/vendor/magento/framework/Interception/Interceptor.php:74
[23-Mar-2016 13:04:13 UTC] PHP  12. Magento\Framework\App\FrontController->dispatch() /vagrant/vendor/magento/framework/Interception/Interceptor.php:74
[23-Mar-2016 13:04:13 UTC] PHP  13. Magento\Widget\Controller\Adminhtml\Widget\Index\Interceptor->dispatch() /vagrant/vendor/magento/framework/App/FrontController.php:55
[23-Mar-2016 13:04:13 UTC] PHP  14. Magento\Widget\Controller\Adminhtml\Widget\Index\Interceptor->___callPlugins() /vagrant/var/generation/Magento/Widget/Controller/Adminhtml/Widget/Index/Interceptor.php:39
[23-Mar-2016 13:04:13 UTC] PHP  15. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Interceptor.php:141}() /vagrant/vendor/magento/framework/Interception/Interceptor.php:141
[23-Mar-2016 13:04:13 UTC] PHP  16. Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch() /vagrant/vendor/magento/framework/Interception/Interceptor.php:141
[23-Mar-2016 13:04:13 UTC] PHP  17. Magento\Widget\Controller\Adminhtml\Widget\Index\Interceptor->Magento\Framework\Interception\{closure}() /vagrant/vendor/magento/module-backend/App/Action/Plugin/MassactionKey.php:33
[23-Mar-2016 13:04:13 UTC] PHP  18. Magento\Framework\Interception\Chain\Chain->invokeNext() /vagrant/vendor/magento/framework/Interception/Interceptor.php:136
[23-Mar-2016 13:04:13 UTC] PHP  19. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68}() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  20. Magento\Framework\App\Action\Plugin\Design->aroundDispatch() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  21. Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}() /vagrant/vendor/magento/framework/App/Action/Plugin/Design.php:39
[23-Mar-2016 13:04:13 UTC] PHP  22. Magento\Framework\Interception\Chain\Chain->invokeNext() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:63
[23-Mar-2016 13:04:13 UTC] PHP  23. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68}() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  24. Magento\Logging\App\Action\Plugin\Log->aroundDispatch() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  25. Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}() /vagrant/vendor/magento/module-logging/App/Action/Plugin/Log.php:69
[23-Mar-2016 13:04:13 UTC] PHP  26. Magento\Framework\Interception\Chain\Chain->invokeNext() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:63
[23-Mar-2016 13:04:13 UTC] PHP  27. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68}() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  28. Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:68
[23-Mar-2016 13:04:13 UTC] PHP  29. Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}() /vagrant/vendor/magento/module-backend/App/Action/Plugin/Authentication.php:143
[23-Mar-2016 13:04:13 UTC] PHP  30. Magento\Framework\Interception\Chain\Chain->invokeNext() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:63
[23-Mar-2016 13:04:13 UTC] PHP  31. Magento\Widget\Controller\Adminhtml\Widget\Index\Interceptor->___callParent() /vagrant/vendor/magento/framework/Interception/Chain/Chain.php:70
[23-Mar-2016 13:04:13 UTC] PHP  32. call_user_func_array:{/vagrant/vendor/magento/framework/Interception/Interceptor.php:74}() /vagrant/vendor/magento/framework/Interception/Interceptor.php:74
[23-Mar-2016 13:04:13 UTC] PHP  33. Magento\Backend\App\AbstractAction->dispatch() /vagrant/vendor/magento/framework/Interception/Interceptor.php:74
[23-Mar-2016 13:04:13 UTC] PHP  34. Magento\Framework\App\Action\Action->dispatch() /vagrant/vendor/magento/module-backend/App/AbstractAction.php:226
[23-Mar-2016 13:04:13 UTC] PHP  35. Magento\Widget\Controller\Adminhtml\Widget\Index\Interceptor->execute() /vagrant/vendor/magento/framework/App/Action/Action.php:102
[23-Mar-2016 13:04:13 UTC] PHP  36. Magento\Widget\Controller\Adminhtml\Widget\Index->execute() /vagrant/var/generation/Magento/Widget/Controller/Adminhtml/Widget/Index/Interceptor.php:24
[23-Mar-2016 13:04:13 UTC] PHP  37. Magento\Framework\App\View->renderLayout() /vagrant/vendor/magento/module-widget/Controller/Adminhtml/Widget/Index.php:51
[23-Mar-2016 13:04:13 UTC] PHP  38. Magento\Backend\Model\View\Result\Page\Interceptor->renderResult() /vagrant/vendor/magento/framework/App/View.php:221
[23-Mar-2016 13:04:13 UTC] PHP  39. Magento\Framework\View\Result\Layout->renderResult() /vagrant/var/generation/Magento/Backend/Model/View/Result/Page/Interceptor.php:193
[23-Mar-2016 13:04:13 UTC] PHP  40. Magento\Framework\View\Result\Page->render() /vagrant/vendor/magento/framework/View/Result/Layout.php:162
[23-Mar-2016 13:04:13 UTC] PHP  41. Magento\Framework\View\Result\Layout->render() /vagrant/vendor/magento/framework/View/Result/Page.php:247
[23-Mar-2016 13:04:13 UTC] PHP  42. Magento\Framework\View\Layout\Interceptor->getOutput() /vagrant/vendor/magento/framework/View/Result/Layout.php:179
[23-Mar-2016 13:04:13 UTC] PHP  43. Magento\Framework\View\Layout->getOutput() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:492
[23-Mar-2016 13:04:13 UTC] PHP  44. Magento\Framework\View\Layout\Interceptor->renderElement() /vagrant/vendor/magento/framework/View/Layout.php:938
[23-Mar-2016 13:04:13 UTC] PHP  45. Magento\Framework\View\Layout->renderElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:193
[23-Mar-2016 13:04:13 UTC] PHP  46. Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() /vagrant/vendor/magento/framework/View/Layout.php:472
[23-Mar-2016 13:04:13 UTC] PHP  47. Magento\Framework\View\Layout->renderNonCachedElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:206
[23-Mar-2016 13:04:13 UTC] PHP  48. Magento\Framework\View\Layout->_renderContainer() /vagrant/vendor/magento/framework/View/Layout.php:520
[23-Mar-2016 13:04:13 UTC] PHP  49. Magento\Framework\View\Layout\Interceptor->renderElement() /vagrant/vendor/magento/framework/View/Layout.php:569
[23-Mar-2016 13:04:13 UTC] PHP  50. Magento\Framework\View\Layout->renderElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:193
[23-Mar-2016 13:04:13 UTC] PHP  51. Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() /vagrant/vendor/magento/framework/View/Layout.php:472
[23-Mar-2016 13:04:13 UTC] PHP  52. Magento\Framework\View\Layout->renderNonCachedElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:206
[23-Mar-2016 13:04:13 UTC] PHP  53. Magento\Framework\View\Layout->_renderBlock() /vagrant/vendor/magento/framework/View/Layout.php:518
[23-Mar-2016 13:04:13 UTC] PHP  54. Magento\Widget\Block\Adminhtml\Widget\Interceptor->toHtml() /vagrant/vendor/magento/framework/View/Layout.php:542
[23-Mar-2016 13:04:13 UTC] PHP  55. Magento\Framework\View\Element\AbstractBlock->toHtml() /vagrant/var/generation/Magento/Widget/Block/Adminhtml/Widget/Interceptor.php:713
[23-Mar-2016 13:04:13 UTC] PHP  56. Magento\Backend\Block\Template->_toHtml() /vagrant/vendor/magento/framework/View/Element/AbstractBlock.php:657
[23-Mar-2016 13:04:13 UTC] PHP  57. Magento\Framework\View\Element\Template->_toHtml() /vagrant/vendor/magento/module-backend/Block/Template.php:104
[23-Mar-2016 13:04:13 UTC] PHP  58. Magento\Widget\Block\Adminhtml\Widget\Interceptor->fetchView() /vagrant/vendor/magento/framework/View/Element/Template.php:279
[23-Mar-2016 13:04:13 UTC] PHP  59. Magento\Framework\View\Element\Template->fetchView() /vagrant/var/generation/Magento/Widget/Block/Adminhtml/Widget/Interceptor.php:388
[23-Mar-2016 13:04:13 UTC] PHP  60. Magento\Framework\View\TemplateEngine\Php->render() /vagrant/vendor/magento/framework/View/Element/Template.php:255
[23-Mar-2016 13:04:13 UTC] PHP  61. include() /vagrant/vendor/magento/framework/View/TemplateEngine/Php.php:59
[23-Mar-2016 13:04:13 UTC] PHP  62. Magento\Widget\Block\Adminhtml\Widget\Interceptor->getFormHtml() /vagrant/vendor/magento/module-backend/view/adminhtml/templates/widget/form/container.phtml:15
[23-Mar-2016 13:04:13 UTC] PHP  63. Magento\Backend\Block\Widget\Form\Container->getFormHtml() /vagrant/var/generation/Magento/Widget/Block/Adminhtml/Widget/Interceptor.php:76
[23-Mar-2016 13:04:13 UTC] PHP  64. Magento\Widget\Block\Adminhtml\Widget\Interceptor->getChildHtml() /vagrant/vendor/magento/module-backend/Block/Widget/Form/Container.php:173
[23-Mar-2016 13:04:13 UTC] PHP  65. Magento\Framework\View\Element\AbstractBlock->getChildHtml() /vagrant/var/generation/Magento/Widget/Block/Adminhtml/Widget/Interceptor.php:622
[23-Mar-2016 13:04:13 UTC] PHP  66. Magento\Framework\View\Layout\Interceptor->renderElement() /vagrant/vendor/magento/framework/View/Element/AbstractBlock.php:497
[23-Mar-2016 13:04:13 UTC] PHP  67. Magento\Framework\View\Layout->renderElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:193
[23-Mar-2016 13:04:13 UTC] PHP  68. Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() /vagrant/vendor/magento/framework/View/Layout.php:472
[23-Mar-2016 13:04:13 UTC] PHP  69. Magento\Framework\View\Layout->renderNonCachedElement() /vagrant/var/generation/Magento/Framework/View/Layout/Interceptor.php:206
[23-Mar-2016 13:04:13 UTC] PHP  70. Magento\Framework\View\Layout->_renderBlock() /vagrant/vendor/magento/framework/View/Layout.php:518
[23-Mar-2016 13:04:13 UTC] PHP  71. Magento\Framework\View\Element\AbstractBlock->toHtml() /vagrant/vendor/magento/framework/View/Layout.php:542
[23-Mar-2016 13:04:13 UTC] PHP  72. Magento\Backend\Block\Widget\Form->_beforeToHtml() /vagrant/vendor/magento/framework/View/Element/AbstractBlock.php:656
[23-Mar-2016 13:04:13 UTC] PHP  73. Magento\Widget\Block\Adminhtml\Widget\Form->_prepareForm() /vagrant/vendor/magento/module-backend/Block/Widget/Form.php:141
[23-Mar-2016 13:04:13 UTC] PHP  74. Magento\Widget\Block\Adminhtml\Widget\Form->_getWidgetSelectOptions() /vagrant/vendor/magento/module-widget/Block/Adminhtml/Widget/Form.php:60
[23-Mar-2016 13:04:13 UTC] PHP  75. Magento\Widget\Block\Adminhtml\Widget\Form->_getAvailableWidgets() /vagrant/vendor/magento/module-widget/Block/Adminhtml/Widget/Form.php:79
[23-Mar-2016 13:04:13 UTC] PHP  76. Magento\Widget\Model\Widget->getWidgetsArray() /vagrant/vendor/magento/module-widget/Block/Adminhtml/Widget/Form.php:111
[23-Mar-2016 13:04:13 UTC] PHP  77. Magento\Widget\Model\Widget->getWidgets() /vagrant/vendor/magento/module-widget/Model/Widget.php:255
[23-Mar-2016 13:04:13 UTC] PHP  78. Magento\Framework\Config\Data\Scoped->get() /vagrant/vendor/magento/module-widget/Model/Widget.php:222
[23-Mar-2016 13:04:13 UTC] PHP  79. Magento\Framework\Config\Data\Scoped->_loadScopedData() /vagrant/vendor/magento/framework/Config/Data/Scoped.php:81
[23-Mar-2016 13:04:13 UTC] PHP  80. Magento\Widget\Model\Config\Reader\Proxy->read() /vagrant/vendor/magento/framework/Config/Data/Scoped.php:103
[23-Mar-2016 13:04:13 UTC] PHP  81. Magento\Framework\Config\Reader\Filesystem->read() /vagrant/var/generation/Magento/Widget/Model/Config/Reader/Proxy.php:103
[23-Mar-2016 13:04:13 UTC] PHP  82. Magento\Framework\Config\Reader\Filesystem->_readFiles() /vagrant/vendor/magento/framework/Config/Reader/Filesystem.php:127
[23-Mar-2016 13:04:13 UTC] PHP  83. Magento\Widget\Model\Config\Converter->convert() /vagrant/vendor/magento/framework/Config/Reader/Filesystem.php:168

Metadata

Metadata

Assignees

Labels

Component: CmsFixed in 2.1.xThe issue has been fixed in 2.1 release lineIssue: Format is not validGate 1 Failed. Automatic verification of issue format is failedIssue: Ready for WorkGate 4. Acknowledged. Issue is added to backlog and ready for developmentbug report

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions