[BUGFIX] Only set request for Web_Response
authorTobias Liebig <tobias.liebig@typo3.org>
Wed, 27 Jun 2012 13:49:41 +0000 (15:49 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Sat, 21 Jul 2012 10:12:50 +0000 (12:12 +0200)
The current request is needed in Tx_Extbase_MVC_Web_Response to
distinguish between a cached or a non-cached request in
addAdditionalHeaderData() as the PageRenderer does not support USER_INTs
currently. This works fine is the ActionController is called with a
Web_Response, but causes an fatal error if a Cli_Response is in charge.

This fix and the $request member in Web_Response should be removed,
once the PageRenderer is fixed for USER_INTs. For now, this patch fixes
a fatal error in the fluid unit tests.

Change-Id: I56fabc3a51ce2c5192ab4488c817b938ed8797ca
Fixes: #36751
Releases: 6.0
Reviewed-on: http://review.typo3.org/12401
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
Reviewed-by: Daniel Lorenz
Tested-by: Daniel Lorenz
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/extbase/Classes/MVC/Controller/ActionController.php
typo3/sysext/extbase/Classes/MVC/Web/Response.php

index 6063f71..8a5264e 100644 (file)
@@ -138,7 +138,9 @@ class Tx_Extbase_MVC_Controller_ActionController extends Tx_Extbase_MVC_Controll
                        throw new Tx_Extbase_MVC_Exception_UnsupportedRequestType(get_class($this) . ' does not support requests of type "' . get_class($request) . '". Supported types are: ' . implode(' ', $this->supportedRequestTypes) , 1187701131);
                }
 
-               $response->setRequest($request);
+               if ($response instanceof Tx_Extbase_MVC_Web_Response) {
+                       $response->setRequest($request);
+               }
                $this->request = $request;
                $this->request->setDispatched(TRUE);
                $this->response = $response;
index 2fa012b..40aaea0 100644 (file)
@@ -207,6 +207,8 @@ class Tx_Extbase_MVC_Web_Response extends Tx_Extbase_MVC_Response {
         * '<script src="myext/Resources/JavaScript/my.js" type="text/javascript"></script>'
         * )
         *
+        * @TODO The workround and the $request member should be removed again, once the PageRender does support non-cached USER_INTs
+        *
         * @param string $additionalHeaderData The value additonal header
         * @return void
         * @api