Problem/Motivation
The Cannot load the "node" entity with NULL ID.
assertion is thrown in the constructor of the controller.
#0 /app/application/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(261): assert(false, 'Cannot load the...')
#1 /app/application/web/modules/contrib/book/src/Controller/RouteAccessController.php(43): Drupal\Core\Entity\EntityStorageBase->load(NULL)
#2 /app/application/web/modules/contrib/book/src/Controller/RouteAccessController.php(54): Drupal\book\Controller\RouteAccessController->__construct(Object(Drupal\book\ProxyClass\BookManager), Object(Drupal\Core\Routing\CurrentRouteMatch))
#3 /app/application/web/core/lib/Drupal/Core/DependencyInjection/ClassResolver.php(41): Drupal\book\Controller\RouteAccessController::create(Object(Drupal\Core\DependencyInjection\Container))
#4 /app/application/web/core/lib/Drupal/Core/Utility/CallableResolver.php(100): Drupal\Core\DependencyInjection\ClassResolver->getInstanceFromDefinition('\\Drupal\\book\\Co...')
#5 /app/application/web/core/lib/Drupal/Core/Access/CustomAccessCheck.php(74): Drupal\Core\Utility\CallableResolver->getCallableFromDefinition('\\Drupal\\book\\Co...')
#6 [internal function]: Drupal\Core\Access\CustomAccessCheck->access(Object(Symfony\Component\Routing\Route), Object(Drupal\Core\Routing\RouteMatch), Object(Drupal\Core\Session\AccountProxy), Object(Symfony\Component\HttpFoundation\Request))
#7 /app/application/web/core/lib/Drupal/Core/Access/AccessManager.php(160): call_user_func_array(Array, Array)
#8 /app/application/web/core/lib/Drupal/Core/Access/AccessManager.php(136): Drupal\Core\Access\AccessManager->performCheck('access_check.cu...', Object(Drupal\Component\Utility\ArgumentsResolver))
#9 /app/application/web/core/lib/Drupal/Core/Access/AccessManager.php(113): Drupal\Core\Access\AccessManager->check(Object(Drupal\Core\Routing\RouteMatch), Object(Drupal\Core\Session\AccountProxy), Object(Symfony\Component\HttpFoundation\Request), true)
#10 /app/application/web/core/lib/Drupal/Core/Routing/AccessAwareRouter.php(109): Drupal\Core\Access\AccessManager->checkRequest(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Session\AccountProxy), true)
#11 /app/application/web/core/lib/Drupal/Core/Routing/AccessAwareRouter.php(94): Drupal\Core\Routing\AccessAwareRouter->checkAccess(Object(Symfony\Component\HttpFoundation\Request))
#12 /app/application/web/core/lib/Drupal/Core/Routing/AccessAwareRouter.php(152): Drupal\Core\Routing\AccessAwareRouter->matchRequest(Object(Symfony\Component\HttpFoundation\Request))
#13 /app/application/web/core/modules/user/src/Plugin/LanguageNegotiation/LanguageNegotiationUserAdmin.php(140): Drupal\Core\Routing\AccessAwareRouter->match('/node/113/child...')
#14 /app/application/web/core/modules/user/src/Plugin/LanguageNegotiation/LanguageNegotiationUserAdmin.php(106): Drupal\user\Plugin\LanguageNegotiation\LanguageNegotiationUserAdmin->isAdminPath(Object(Symfony\Component\HttpFoundation\Request))
#15 /app/application/web/core/modules/language/src/LanguageNegotiator.php(197): Drupal\user\Plugin\LanguageNegotiation\LanguageNegotiationUserAdmin->getLangcode(Object(Symfony\Component\HttpFoundation\Request))
#16 /app/application/web/core/modules/language/src/LanguageNegotiator.php(137): Drupal\language\LanguageNegotiator->negotiateLanguage('language_interf...', 'language-user-a...')
In particular if the user has a preferred admin language code.
Steps to reproduce
1. Have a user with the access administration pages
or view the administration theme
permission.
2. Give them a preferred language code.
3. Attempt to access the /node/{node}/child-ordering
route.
Proposed resolution
Add appropriate checks to see that the node
parameter is an integer, as well as lazy load the node entity from the route match object passed into the callbacks.
Remaining tasks
Provide issue fork.
User interface changes
N/A
API changes
N/A
Data model changes