Bug #45405
Uncaught Exception in DynamicRoutePart
Status: | Accepted | Start date: | 2013-02-12 | |
---|---|---|---|---|
Priority: | Should have | Due date: | ||
Assigned To: | Bastian Waidelich | % Done: | 0% |
|
Category: | MVC - Routing | |||
Target version: | - | |||
PHP Version: | 5.4 | Complexity: | ||
Has patch: | No | Affected Flow version: | Git master |
Description
In line 184 of the DynamicRoutePart a notice is thrown if the incoming value is an array. This happens for PHP Versions > 5.4.0 (see http://php.net/ChangeLog-5.php).
History
#1 Updated by Bastian Waidelich over 2 years ago
- Status changed from New to Needs Feedback
- Assigned To set to Bastian Waidelich
Hi Marco, thanks for reporting!
Can you please add more details on when you get this issue?
The value should never be an array in the first place I think – when does this happen?
#2 Updated by Marco Falkenberg over 2 years ago
Sorry, i cannot replicate this error anymore. Maybe due to the recent changes in Flow.
I guess this happens when having a named route part, whose name is also found in the request body arguments which then could be an array.
#3 Updated by Bastian Waidelich over 2 years ago
- Status changed from Needs Feedback to Closed
Marco Falkenberg wrote:
Sorry, i cannot replicate this error anymore. Maybe due to the recent changes in Flow.
No problem, thanks for reporting back!
I close this issue for now – feel free to re-open if the exception occurs again
#4 Updated by Adrian Föder over 1 year ago
- File uriFor.png added
- Status changed from Closed to Accepted
- Affected Flow version changed from Flow 2.0.0 beta 1 to Git master
Luckily I found this one, just happenened to me. It seems to occur if I
- invoke a URI like example.org/acme.stuff/plan/show?plan[__identity=abcde-123456]
- ...this is secured and I am redirected to the WebEntryPoint
- ...and I successfully authenticate and "it" tries to redirect me to the initial URI.
Take the attached stack trace screen shot into account; and,
Uncaught exception #1: Warning: urlencode() expects parameter 1 to be string, array given in C:\Users\afoeder\PhpstormProjects\acme\Distribution\Data\Temporary\Development\Cache\Code\Flow_Object_Classes\TYPO3_Flow_Mvc_Routing_DynamicRoutePart.php line 184 51 TYPO3\Flow\Error\ErrorHandler::handleError(2, "urlencode() expects parameter 1 to be string, array given", "C:\Users\afoeder\PhpstormProjects\acme\Distribution\Data\Temporary\Development\Cache\Code\Flow_Object_Classes\TYPO3_Flow_Mvc_Routing_DynamicRoutePart.php", 184, array|1|) 50 urlencode(array|1|) 49 TYPO3\Flow\Mvc\Routing\DynamicRoutePart_Original::resolveValue(array|1|) / \ --------------------------------------------------------- ------------------- / \ array(1) string "__identity" (10) => string "40329e63-3984-c80b-13eb-5e0c4e59e7fc" (36) 48 TYPO3\Flow\Mvc\Routing\DynamicRoutePart_Original::resolve(array|5|) 47 TYPO3\Flow\Mvc\Routing\Route_Original::resolves(array|5|) 46 TYPO3\Flow\Mvc\Routing\Router_Original::resolve(array|5|) 45 TYPO3\Flow\Mvc\Routing\UriBuilder_Original::build(array|5|) / \ ----------------------------------------------------- ------------------------- / \ array(5) string "plan" (4) => array(1) string "__identity" (10) => string "40329e63-3984-c80b-13eb-5e0c4e59e7fc" (36) string "@action" (7) => string "pickplan" (8) string "@controller" (11) => string "plangeneration" (14) string "@package" (8) => string "acme.core" (14) string "@format" (7) => string "html" (4) 44 TYPO3\Flow\Mvc\Routing\UriBuilder_Original::uriFor("pickPlan", array|1|, "PlanGeneration", "Acme.Core", NULL) 43 TYPO3\Flow\Mvc\Routing\UriBuilder::uriFor("pickPlan", array|1|, "PlanGeneration", "Acme.Core", NULL) / \ ----------------------------------------- -------------------------------------- / \ array(1) string "plan" (4) => array(1) string "__identity" (10) => string "40329e63-3984-c80b-13eb-5e0c4e59e7fc" (36) 42 call_user_func_array(array|2|, array|5|) 41 TYPO3\Flow\Mvc\Routing\UriBuilder::Flow_Aop_Proxy_invokeJoinPoint(TYPO3\Flow\Aop\JoinPoint) 40 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 39 TYPO3\Neos\Aspects\PluginUriAspect_Original::rewritePluginViewUris(TYPO3\Flow\Aop\JoinPoint) 38 TYPO3\Flow\Aop\Advice\AroundAdvice::invoke(TYPO3\Flow\Aop\JoinPoint) 37 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 36 TYPO3\Flow\Mvc\Routing\UriBuilder::uriFor("pickPlan", array|1|, "PlanGeneration", "Acme.Core", NULL) 35 TYPO3\Flow\Mvc\Controller\AbstractController::redirect("pickPlan", "PlanGeneration", "Acme.Core", array|1|, 0, 303, "html") 34 TYPO3\Flow\Mvc\Controller\AbstractController::redirectToRequest(TYPO3\Flow\Mvc\ActionRequest) 33 Acme\Core\Controller\AuthenticationController_Original::onAuthenticationSuccess(TYPO3\Flow\Mvc\ActionRequest) 32 TYPO3\Flow\Security\Authentication\Controller\AbstractAuthenticationController_Original::authenticateAction() 31 TYPO3\Flow\Security\Authentication\Controller\AbstractAuthenticationController::authenticateAction() 30 call_user_func_array(array|2|, array|0|) 29 TYPO3\Flow\Security\Authentication\Controller\AbstractAuthenticationController::Flow_Aop_Proxy_invokeJoinPoint(TYPO3\Flow\Aop\JoinPoint) 28 Acme\Core\Controller\AuthenticationController::Flow_Aop_Proxy_invokeJoinPoint(TYPO3\Flow\Aop\JoinPoint) 27 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 26 TYPO3\Flow\Security\Aspect\PolicyEnforcementAspect_Original::enforcePolicy(TYPO3\Flow\Aop\JoinPoint) 25 TYPO3\Flow\Aop\Advice\AroundAdvice::invoke(TYPO3\Flow\Aop\JoinPoint) 24 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 23 TYPO3\Flow\Security\Authentication\Controller\AbstractAuthenticationController::authenticateAction() 22 Acme\Core\Controller\AuthenticationController::authenticateAction() 21 call_user_func_array(array|2|, array|0|) 20 Acme\Core\Controller\AuthenticationController::Flow_Aop_Proxy_invokeJoinPoint(TYPO3\Flow\Aop\JoinPoint) 19 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 18 TYPO3\Flow\Security\Aspect\PolicyEnforcementAspect_Original::enforcePolicy(TYPO3\Flow\Aop\JoinPoint) 17 TYPO3\Flow\Aop\Advice\AroundAdvice::invoke(TYPO3\Flow\Aop\JoinPoint) 16 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 15 Acme\Core\Controller\AuthenticationController::authenticateAction() 14 call_user_func_array(array|2|, array|0|) 13 TYPO3\Flow\Mvc\Controller\ActionController_Original::callActionMethod() 12 TYPO3\Flow\Mvc\Controller\ActionController_Original::processRequest(TYPO3\Flow\Mvc\ActionRequest, TYPO3\Flow\Http\Response) 11 TYPO3\Flow\Mvc\Dispatcher_Original::dispatch(TYPO3\Flow\Mvc\ActionRequest, TYPO3\Flow\Http\Response) 10 TYPO3\Flow\Mvc\Dispatcher::dispatch(TYPO3\Flow\Mvc\ActionRequest, TYPO3\Flow\Http\Response) 9 call_user_func_array(array|2|, array|2|) 8 TYPO3\Flow\Mvc\Dispatcher::Flow_Aop_Proxy_invokeJoinPoint(TYPO3\Flow\Aop\JoinPoint) 7 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 6 TYPO3\Flow\Security\Aspect\RequestDispatchingAspect_Original::blockIllegalRequestsAndForwardToAuthenticationEntryPoints(TYPO3\Flow\Aop\JoinPoint) 5 TYPO3\Flow\Aop\Advice\AroundAdvice::invoke(TYPO3\Flow\Aop\JoinPoint) 4 TYPO3\Flow\Aop\Advice\AdviceChain::proceed(TYPO3\Flow\Aop\JoinPoint) 3 TYPO3\Flow\Mvc\Dispatcher::dispatch(TYPO3\Flow\Mvc\ActionRequest, TYPO3\Flow\Http\Response) 2 TYPO3\Flow\Http\RequestHandler::handleRequest() 1 TYPO3\Flow\Core\Bootstrap::run() HTTP REQUEST: POST /app/authentication/authenticate HTTP/1.1 Content-Length: 950 Content-Type: application/x-www-form-urlencoded Connection: keep-alive Referer: http://dev.internal.acme.com/app/authentication/login Accept-Encoding: gzip, deflate Accept-Language: de,en-us;q=0.7,en;q=0.3 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 Host: dev.internal.acme.com __referrer%5B%40package%5D=Acme.Core&__referrer%5B%40subpackage%5D=&__referrer%5B%40controller%5D=Authentication&__referrer%5B%40action%5D=login&__referrer%5Barguments%5D=YTowOnt95df6766b3c5056d6b108e8973d7d15e58e74af49&__trustedP[......] HTTP RESPONSE: [response was empty]
Hope that helps!