Project

General

Profile

Actions

Bug #77645

closed

Closures in SignalSlot\Dispatcher can cause troubles

Added by Benjamin Serfhos over 7 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2016-08-26
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
6.2
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:

Description

Hi,

While connecting a quick SignalSlot to the Dispatcher using closure this can cause page rendering problems.

How to reproduce:

\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher')->connect(
    TYPO3\CMS\Core\Tree\TableConfiguration\TableConfiguration\DatabaseTreeDataProvider::class,
    \TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData,
    function(DatabaseTreeDataProvider $dataProvider, $treeData) {
       // my quick changes
    }
);

Now add a Text with Image and an plugin which is an USER_INT.
The text with image load an FAL image in cObj, the USER_INT tries to serialize the cObj.

This results in the error:
Serialization of 'Closure' is not allowed

I do not mind solving this issue myself, however I don't know on what level I should fix this.

1) Make sure cObj is serializable (using $this->cObj->setCurrentFile(null); at the end of \TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController::render_textpic())

2) Make sure Closures are not allowed in signal slots (using validation in connect())

Kind regards,
Benjamin


Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #64916: Avoid serialization of some members of ContentObjectRendererClosedMarkus Klein2015-02-06

Actions
Related to TYPO3 Core - Bug #81866: Regression: css_styled_content does no longer render image captionsClosed2017-07-14

Actions
Actions

Also available in: Atom PDF