Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / views_ui / src / ViewListBuilder.php
index 42166be1a5a9573614c971c602d98ed339b063e8..628408e997fde5837e1c4ad0f67108783314afad 100644 (file)
@@ -9,6 +9,7 @@ use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Url;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException;
 
 /**
  * Defines a class to build a listing of view entities.
@@ -255,9 +256,17 @@ class ViewListBuilder extends ConfigEntityListBuilder {
         if ($display->hasPath()) {
           $path = $display->getPath();
           if ($view->status() && strpos($path, '%') === FALSE) {
-            // @todo Views should expect and store a leading /. See:
-            //   https://www.drupal.org/node/2423913
-            $rendered_path = \Drupal::l('/' . $path, Url::fromUserInput('/' . $path));
+            // Wrap this in a try/catch as trying to generate links to some
+            // routes may throw a NotAcceptableHttpException if they do not
+            // respond to HTML, such as RESTExports.
+            try {
+              // @todo Views should expect and store a leading /. See:
+              //   https://www.drupal.org/node/2423913
+              $rendered_path = \Drupal::l('/' . $path, Url::fromUserInput('/' . $path));
+            }
+            catch (NotAcceptableHttpException $e) {
+              $rendered_path = '/' . $path;
+            }
           }
           else {
             $rendered_path = '/' . $path;