diff --git a/core/lib/Drupal/Component/Plugin/PluginBag.php b/core/lib/Drupal/Component/Plugin/PluginBag.php
index 50df14a..04bd959 100644
--- a/core/lib/Drupal/Component/Plugin/PluginBag.php
+++ b/core/lib/Drupal/Component/Plugin/PluginBag.php
@@ -63,7 +63,7 @@ public function has($instance_id) {
    * @param string $instance_id
    *   The ID of the plugin instance being retrieved.
    */
-  public function get($instance_id) {
+  public function &get($instance_id) {
     if (!isset($this->pluginInstances[$instance_id])) {
       $this->initializePlugin($instance_id);
     }
diff --git a/core/modules/field/lib/Drupal/field/Tests/Views/HandlerFieldFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Views/HandlerFieldFieldTest.php
index 3f5aea2..27504eb 100644
--- a/core/modules/field/lib/Drupal/field/Tests/Views/HandlerFieldFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Views/HandlerFieldFieldTest.php
@@ -114,8 +114,8 @@ public function _testSimpleFieldRender() {
   public function _testFormatterSimpleFieldRender() {
     $view = views_get_view('test_view_fieldapi');
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$this->fields[0]['field_name']]['type'] = 'text_trimmed';
-    $view->displayHandlers['default']->options['fields'][$this->fields[0]['field_name']]['settings'] = array(
+    $view->displayHandlers->get('default')->options['fields'][$this->fields[0]['field_name']]['type'] = 'text_trimmed';
+    $view->displayHandlers->get('default')->options['fields'][$this->fields[0]['field_name']]['settings'] = array(
       'trim_length' => 3,
     );
     $this->executeView($view);
@@ -134,8 +134,8 @@ public function _testMultipleFieldRender() {
 
     // Test delta limit.
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$field_name]['group_rows'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_limit'] = 3;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['group_rows'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_limit'] = 3;
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
@@ -156,9 +156,9 @@ public function _testMultipleFieldRender() {
 
     // Test delta limit + offset
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$field_name]['group_rows'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_limit'] = 3;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_offset'] = 1;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['group_rows'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_limit'] = 3;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_offset'] = 1;
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
@@ -175,10 +175,10 @@ public function _testMultipleFieldRender() {
 
     // Test delta limit + reverse.
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_offset'] = 0;
-    $view->displayHandlers['default']->options['fields'][$field_name]['group_rows'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_limit'] = 3;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_reversed'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_offset'] = 0;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['group_rows'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_limit'] = 3;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_reversed'] = TRUE;
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
@@ -196,10 +196,10 @@ public function _testMultipleFieldRender() {
 
     // Test delta first last.
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$field_name]['group_rows'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_limit'] = 0;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_first_last'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_reversed'] = FALSE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['group_rows'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_limit'] = 0;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_first_last'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_reversed'] = FALSE;
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
@@ -214,10 +214,10 @@ public function _testMultipleFieldRender() {
 
     // Test delta limit + custom seperator.
     $this->prepareView($view);
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_first_last'] = FALSE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['delta_limit'] = 3;
-    $view->displayHandlers['default']->options['fields'][$field_name]['group_rows'] = TRUE;
-    $view->displayHandlers['default']->options['fields'][$field_name]['separator'] = ':';
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_first_last'] = FALSE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['delta_limit'] = 3;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['group_rows'] = TRUE;
+    $view->displayHandlers->get('default')->options['fields'][$field_name]['separator'] = ':';
     $this->executeView($view);
 
     for ($i = 0; $i < 3; $i++) {
diff --git a/core/modules/language/lib/Drupal/language/Tests/Views/ArgumentLanguageTest.php b/core/modules/language/lib/Drupal/language/Tests/Views/ArgumentLanguageTest.php
index eead47e..f3e4068 100644
--- a/core/modules/language/lib/Drupal/language/Tests/Views/ArgumentLanguageTest.php
+++ b/core/modules/language/lib/Drupal/language/Tests/Views/ArgumentLanguageTest.php
@@ -38,7 +38,7 @@ public function testArgument() {
     $view = views_get_view('test_view');
     foreach (array('en' => 'John', 'xx-lolspeak' => 'George') as $langcode => $name) {
       $view->setDisplay();
-      $view->displayHandlers['default']->overrideOption('arguments', array(
+      $view->displayHandlers->get('default')->overrideOption('arguments', array(
         'langcode' => array(
           'id' => 'langcode',
           'table' => 'views_test_data',
diff --git a/core/modules/language/lib/Drupal/language/Tests/Views/FieldLanguageTest.php b/core/modules/language/lib/Drupal/language/Tests/Views/FieldLanguageTest.php
index 1eafc88..62359b9 100644
--- a/core/modules/language/lib/Drupal/language/Tests/Views/FieldLanguageTest.php
+++ b/core/modules/language/lib/Drupal/language/Tests/Views/FieldLanguageTest.php
@@ -37,7 +37,7 @@ public static function getInfo() {
   public function testField() {
     $view = views_get_view('test_view');
     $view->setDisplay();
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'langcode' => array(
         'id' => 'langcode',
         'table' => 'views_test_data',
diff --git a/core/modules/language/lib/Drupal/language/Tests/Views/FilterLanguageTest.php b/core/modules/language/lib/Drupal/language/Tests/Views/FilterLanguageTest.php
index 16645a2..b2d03a4 100644
--- a/core/modules/language/lib/Drupal/language/Tests/Views/FilterLanguageTest.php
+++ b/core/modules/language/lib/Drupal/language/Tests/Views/FilterLanguageTest.php
@@ -38,7 +38,7 @@ public function testFilter() {
     $view = views_get_view('test_view');
     foreach (array('en' => 'John', 'xx-lolspeak' => 'George') as $langcode => $name) {
       $view->setDisplay();
-      $view->displayHandlers['default']->overrideOption('filters', array(
+      $view->displayHandlers->get('default')->overrideOption('filters', array(
         'langcode' => array(
           'id' => 'langcode',
           'table' => 'views_test_data',
diff --git a/core/modules/user/lib/Drupal/user/Tests/Views/AccessRoleTest.php b/core/modules/user/lib/Drupal/user/Tests/Views/AccessRoleTest.php
index dce8699..10b4687 100644
--- a/core/modules/user/lib/Drupal/user/Tests/Views/AccessRoleTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/Views/AccessRoleTest.php
@@ -38,7 +38,7 @@ function testAccessRole() {
     $view = views_get_view('test_access_role');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->options['access']['options']['role'] = array(
+    $view->displayHandlers->get('default')->options['access']['options']['role'] = array(
       $this->normalRole => $this->normalRole,
     );
 
diff --git a/core/modules/user/lib/Drupal/user/Tests/Views/ArgumentValidateTest.php b/core/modules/user/lib/Drupal/user/Tests/Views/ArgumentValidateTest.php
index 239134b..fcc3055 100644
--- a/core/modules/user/lib/Drupal/user/Tests/Views/ArgumentValidateTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/Views/ArgumentValidateTest.php
@@ -85,7 +85,7 @@ function testArgumentValidateUserEither() {
   function view_argument_validate_user($argtype) {
     $view = views_get_view('test_view_argument_validate_user');
     $view->setDisplay();
-    $view->displayHandlers['default']->options['arguments']['null']['validate_options']['type'] = $argtype;
+    $view->displayHandlers->get('default')->options['arguments']['null']['validate_options']['type'] = $argtype;
     $view->preExecute();
     $view->initHandlers();
 
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index 1475cda..a997c3b 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -690,7 +690,7 @@ function user_update_8009(&$sandbox) {
 /**
  * Create user picture field.
  */
-function user_update_8011() {
+function user_update_8010() {
   global $user;
 
   // User pictures can only be migrated to the new user picture image field
@@ -846,7 +846,7 @@ function user_update_8011() {
 /**
  * Migrate {users}.picture to 'user_picture' image field.
  */
-function user_update_8012(&$sandbox) {
+function user_update_8011(&$sandbox) {
   // Initialize total values to process.
   if (!isset($sandbox['total'])) {
     $sandbox['total'] = (int) db_query('SELECT COUNT(picture) FROM {users} WHERE picture > 0')->fetchField();
@@ -914,7 +914,7 @@ function user_update_8012(&$sandbox) {
 /**
  * Deletes {users}.picture field.
  */
-function user_update_8013() {
+function user_update_8012() {
   db_drop_field('users', 'picture');
 }
 
diff --git a/core/modules/views/includes/ajax.inc b/core/modules/views/includes/ajax.inc
index ee769a3..61f913c 100644
--- a/core/modules/views/includes/ajax.inc
+++ b/core/modules/views/includes/ajax.inc
@@ -69,7 +69,7 @@ function views_ajax() {
       // Override the display's pager_element with the one actually used.
       if (isset($pager_element)) {
         $commands[] = views_ajax_command_scroll_top('.view-dom-id-' . $dom_id);
-        $view->displayHandlers[$display_id]->setOption('pager_element', $pager_element);
+        $view->displayHandlers->get($display_id)->setOption('pager_element', $pager_element);
       }
       // Reuse the same DOM id so it matches that in Drupal.settings.
       $view->dom_id = $dom_id;
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
index 95c2291..e85c254 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Attachment.php
@@ -195,7 +195,7 @@ public function buildOptionsForm(&$form, &$form_state) {
         $form['#title'] .= t('Attach to');
         $displays = array();
         foreach ($this->view->storage->get('display') as $display_id => $display) {
-          if (!empty($this->view->displayHandlers[$display_id]) && $this->view->displayHandlers[$display_id]->acceptAttachments()) {
+          if ($this->view->displayHandlers->has($display_id) && $this->view->displayHandlers->get($display_id)->acceptAttachments()) {
             $displays[$display_id] = $display['display_title'];
           }
         }
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
index 06780c3..7cb0d71 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/DisplayPluginBase.php
@@ -708,7 +708,7 @@ public function getAttachedDisplays() {
   public function getLinkDisplay() {
     $display_id = $this->getOption('link_display');
     // If unknown, pick the first one.
-    if (empty($display_id) || empty($this->view->displayHandlers[$display_id])) {
+    if (empty($display_id) || !$this->view->displayHandlers->has($display_id)) {
       foreach ($this->view->displayHandlers as $display_id => $display) {
         if (!empty($display) && $display->hasPath()) {
           return $display_id;
@@ -733,8 +733,8 @@ public function getPath() {
     }
 
     $display_id = $this->getLinkDisplay();
-    if ($display_id && !empty($this->view->displayHandlers[$display_id]) && is_object($this->view->displayHandlers[$display_id])) {
-      return $this->view->displayHandlers[$display_id]->getPath();
+    if ($display_id && $this->view->displayHandlers->has($display_id) && is_object($this->view->displayHandlers->get($display_id))) {
+      return $this->view->displayHandlers->get($display_id)->getPath();
     }
   }
 
@@ -1655,7 +1655,7 @@ public function buildOptionsForm(&$form, &$form_state) {
       case 'link_display':
         $form['#title'] .= t('Which display to use for path');
         foreach ($this->view->storage->get('display') as $display_id => $display) {
-          if ($this->view->displayHandlers[$display_id]->hasPath()) {
+          if ($this->view->displayHandlers->get($display_id)->hasPath()) {
             $options[$display_id] = $display['display_title'];
           }
         }
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php b/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
index 9599209..a1d48f3 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/display/Feed.php
@@ -213,7 +213,7 @@ public function buildOptionsForm(&$form, &$form_state) {
         $displays = array();
         foreach ($this->view->storage->get('display') as $display_id => $display) {
           // @todo The display plugin should have display_title and id as well.
-          if (!empty($this->view->displayHandlers[$display_id]) && $this->view->displayHandlers[$display_id]->acceptAttachments()) {
+          if ($this->view->displayHandlers->has($display_id) && $this->view->displayHandlers->get($display_id)->acceptAttachments()) {
             $displays[$display_id] = $display['display_title'];
           }
         }
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
index e4d1e96..cdde057 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/Rss.php
@@ -33,7 +33,7 @@ class Rss extends StylePluginBase {
   protected $usesRowPlugin = TRUE;
 
   function attach_to($display_id, $path, $title) {
-    $display = $this->view->displayHandlers[$display_id];
+    $display = $this->view->displayHandlers->get($display_id);
     $url_options = array();
     $input = $this->view->getExposedInput();
     if ($input) {
diff --git a/core/modules/views/lib/Drupal/views/Tests/BasicTest.php b/core/modules/views/lib/Drupal/views/Tests/BasicTest.php
index f90cf64..d66d304 100644
--- a/core/modules/views/lib/Drupal/views/Tests/BasicTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/BasicTest.php
@@ -53,7 +53,7 @@ public function testSimpleFiltering() {
     $view->setDisplay();
 
     // Add a filter.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'operator' => '<',
         'value' => array(
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
index 7d32690..44dac15 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTest.php
@@ -161,7 +161,7 @@ public function testTitleArea() {
     $view->initDisplay('page_1');
 
     // Add the title area handler to the empty area.
-    $view->displayHandlers['page_1']->overrideOption('empty', array(
+    $view->displayHandlers->get('page_1')->overrideOption('empty', array(
       'title' => array(
         'id' => 'title',
         'table' => 'views',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTextTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTextTest.php
index 43b807e..21224c3 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTextTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/AreaTextTest.php
@@ -44,7 +44,7 @@ public function testAreaText() {
 
     // add a text header
     $string = $this->randomName();
-    $view->displayHandlers['default']->overrideOption('header', array(
+    $view->displayHandlers->get('default')->overrideOption('header', array(
       'area' => array(
         'id' => 'area',
         'table' => 'views',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
index cf3cda6..23a4928 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/ArgumentNullTest.php
@@ -43,7 +43,7 @@ public function testAreaText() {
 
     // Add a null argument.
     $string = $this->randomString();
-    $view->displayHandlers['default']->overrideOption('arguments', array(
+    $view->displayHandlers->get('default')->overrideOption('arguments', array(
       'null' => array(
         'id' => 'null',
         'table' => 'views',
@@ -69,7 +69,7 @@ public function testAreaText() {
 
     // Add a argument, which has null as handler.
     $string = $this->randomString();
-    $view->displayHandlers['default']->overrideOption('arguments', array(
+    $view->displayHandlers->get('default')->overrideOption('arguments', array(
       'id' => array(
         'id' => 'id',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
index eadd129..61b2a6d 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldBooleanTest.php
@@ -47,7 +47,7 @@ public function testFieldBoolean() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCounterTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
index b9a6cba..8c11524 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCounterTest.php
@@ -38,7 +38,7 @@ protected function setUp() {
   function testSimple() {
     $view = views_get_view('test_view');
     $view->setDisplay();
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'counter' => array(
         'id' => 'counter',
         'table' => 'views',
@@ -64,7 +64,7 @@ function testSimple() {
 
     $view->setDisplay();
     $rand_start = rand(5, 10);
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'counter' => array(
         'id' => 'counter',
         'table' => 'views',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCustomTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
index 41b0611..237efc7 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldCustomTest.php
@@ -41,7 +41,7 @@ public function testFieldCustom() {
 
     // Alter the text of the field to a random string.
     $random = $this->randomName();
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldDateTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldDateTest.php
index e6a279c..345d68f 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldDateTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldDateTest.php
@@ -39,7 +39,7 @@ public function testFieldDate() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'created' => array(
         'id' => 'created',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
index fd6b524..f7fa8bc 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldFileSizeTest.php
@@ -52,7 +52,7 @@ public function testFieldFileSize() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldUrlTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
index 530d53b..1deac88 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldUrlTest.php
@@ -44,7 +44,7 @@ public function testFieldUrl() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -62,7 +62,7 @@ public function testFieldUrl() {
     $view->destroy();
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldXssTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldXssTest.php
index 832b7f1..c2ebbdd 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldXssTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldXssTest.php
@@ -53,7 +53,7 @@ public function testFieldXss() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterCombineTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
index 1ec96fa..89696d0 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterCombineTest.php
@@ -38,8 +38,8 @@ public function testFilterCombineContains() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $fields = $view->displayHandlers['default']->getOption('fields');
-    $view->displayHandlers['default']->overrideOption('fields', $fields + array(
+    $fields = $view->displayHandlers->get('default')->getOption('fields');
+    $view->displayHandlers->get('default')->overrideOption('fields', $fields + array(
       'job' => array(
         'id' => 'job',
         'table' => 'views_test_data',
@@ -49,7 +49,7 @@ public function testFilterCombineContains() {
     ));
 
     // Change the filtering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'combine',
         'table' => 'views',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
index 05a42a4..d329414 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterEqualityTest.php
@@ -50,7 +50,7 @@ function testEqual() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -78,7 +78,7 @@ public function testEqualGroupedExposed() {
     // Filter: Name, Operator: =, Value: Ringo
     $filters['name']['group_info']['default_group'] = 1;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -94,7 +94,7 @@ function testNotEqual() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -131,7 +131,7 @@ public function testEqualGroupedNotExposed() {
     // Filter: Name, Operator: !=, Value: Ringo
     $filters['name']['group_info']['default_group'] = 2;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
index 6b6a8e8..f22afbe 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterInOperatorTest.php
@@ -51,7 +51,7 @@ public function testFilterInOperatorSimple() {
     $view->setDisplay();
 
     // Add a in_operator ordering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'field' => 'age',
@@ -81,7 +81,7 @@ public function testFilterInOperatorSimple() {
     $view->setDisplay();
 
     // Add a in_operator ordering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'field' => 'age',
@@ -119,7 +119,7 @@ public function testFilterInOperatorGroupedExposedSimple() {
     // Filter: Age, Operator: in, Value: 26, 30
     $filters['age']['group_info']['default_group'] = 1;
     $view->setDisplay();
-    $view->displayHandlers['default']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('default')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -145,7 +145,7 @@ public function testFilterNotInOperatorGroupedExposedSimple() {
     // Filter: Age, Operator: in, Value: 26, 30
     $filters['age']['group_info']['default_group'] = 2;
     $view->setDisplay();
-    $view->displayHandlers['default']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('default')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterNumericTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
index d497954..ee58a3b 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterNumericTest.php
@@ -53,7 +53,7 @@ public function testFilterNumericSimple() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
@@ -82,7 +82,7 @@ public function testFilterNumericExposedGroupedSimple() {
     // Filter: Age, Operator: =, Value: 28
     $filters['age']['group_info']['default_group'] = 1;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -99,7 +99,7 @@ public function testFilterNumericBetween() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
@@ -135,7 +135,7 @@ public function testFilterNumericBetween() {
     $view->setDisplay();
 
       // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
@@ -175,7 +175,7 @@ public function testFilterNumericExposedGroupedBetween() {
     // Filter: Age, Operator: between, Value: 26 and 29
     $filters['age']['group_info']['default_group'] = 2;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -203,7 +203,7 @@ public function testFilterNumericExposedGroupedNotBetween() {
     // Filter: Age, Operator: between, Value: 26 and 29
     $filters['age']['group_info']['default_group'] = 3;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -228,7 +228,7 @@ public function testFilterNumericEmpty() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
@@ -247,7 +247,7 @@ public function testFilterNumericEmpty() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
@@ -291,7 +291,7 @@ public function testFilterNumericExposedGroupedEmpty() {
     // Filter: Age, Operator: empty, Value:
     $filters['age']['group_info']['default_group'] = 4;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -307,7 +307,7 @@ public function testFilterNumericExposedGroupedNotEmpty() {
     // Filter: Age, Operator: empty, Value:
     $filters['age']['group_info']['default_group'] = 5;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -339,7 +339,7 @@ public function testAllowEmpty() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'id' => array(
         'id' => 'id',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterStringTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterStringTest.php
index 65c71e5..0e9887a 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FilterStringTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FilterStringTest.php
@@ -95,7 +95,7 @@ function testFilterStringEqual() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -122,7 +122,7 @@ function testFilterStringGroupedExposedEqual() {
     // Filter: Name, Operator: =, Value: Ringo
     $filters['name']['group_info']['default_group'] = 1;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -140,7 +140,7 @@ function testFilterStringNotEqual() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -177,7 +177,7 @@ function testFilterStringGroupedExposedNotEqual() {
     $filters['name']['group_info']['default_group'] = '2';
 
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -204,7 +204,7 @@ function testFilterStringContains() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -232,7 +232,7 @@ function testFilterStringGroupedExposedContains() {
     // Filter: Name, Operator: contains, Value: ing
     $filters['name']['group_info']['default_group'] = '3';
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -251,7 +251,7 @@ function testFilterStringWord() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -278,7 +278,7 @@ function testFilterStringWord() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -306,7 +306,7 @@ function testFilterStringGroupedExposedWord() {
     // Filter: Name, Operator: contains, Value: ing
     $filters['name']['group_info']['default_group'] = '3';
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -325,7 +325,7 @@ function testFilterStringGroupedExposedWord() {
     // Filter: Description, Operator: contains, Value: actor
     $filters['description']['group_info']['default_group'] = '1';
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -344,7 +344,7 @@ function testFilterStringStarts() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -371,7 +371,7 @@ function testFilterStringGroupedExposedStarts() {
     // Filter: Name, Operator: starts, Value: George
     $filters['description']['group_info']['default_group'] = 2;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -388,7 +388,7 @@ function testFilterStringNotStarts() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -422,7 +422,7 @@ function testFilterStringGroupedExposedNotStarts() {
     // Filter: Name, Operator: not_starts, Value: George
     $filters['description']['group_info']['default_group'] = 3;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -446,7 +446,7 @@ function testFilterStringEnds() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -476,7 +476,7 @@ function testFilterStringGroupedExposedEnds() {
     // Filter: Descriptino, Operator: ends, Value: Beatles
     $filters['description']['group_info']['default_group'] = 4;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -496,7 +496,7 @@ function testFilterStringNotEnds() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -527,7 +527,7 @@ function testFilterStringGroupedExposedNotEnds() {
     // Filter: Description, Operator: not_ends, Value: Beatles
     $filters['description']['group_info']['default_group'] = 5;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -548,7 +548,7 @@ function testFilterStringNot() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -580,7 +580,7 @@ function testFilterStringGroupedExposedNot() {
     // Filter: Description, Operator: not (does not contains), Value: Beatles
     $filters['description']['group_info']['default_group'] = 6;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
 
@@ -602,7 +602,7 @@ function testFilterStringShorter() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -632,7 +632,7 @@ function testFilterStringGroupedExposedShorter() {
     // Filter: Name, Operator: shorterthan, Value: 5
     $filters['name']['group_info']['default_group'] = 4;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -651,7 +651,7 @@ function testFilterStringLonger() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -678,7 +678,7 @@ function testFilterStringGroupedExposedLonger() {
     // Filter: Name, Operator: longerthan, Value: 4
     $filters['name']['group_info']['default_group'] = 5;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
@@ -695,7 +695,7 @@ function testFilterStringEmpty() {
     $view->setDisplay();
 
     // Change the filtering
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'description' => array(
         'id' => 'description',
         'table' => 'views_test_data',
@@ -721,7 +721,7 @@ function testFilterStringGroupedExposedEmpty() {
     // Filter: Description, Operator: empty, Value:
     $filters['description']['group_info']['default_group'] = 7;
     $view->setDisplay('page_1');
-    $view->displayHandlers['page_1']->overrideOption('filters', $filters);
+    $view->displayHandlers->get('page_1')->overrideOption('filters', $filters);
 
     $this->executeView($view);
     $resultset = array(
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerAliasTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerAliasTest.php
index 29d146c..793f2d8 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerAliasTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/HandlerAliasTest.php
@@ -53,7 +53,7 @@ public function testPluginAliases() {
     $view->initDisplay();
 
     // Change the filtering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'test_filter' => array(
         'id' => 'test_filter',
         'table' => 'views_test_data_alias',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/RelationshipTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/RelationshipTest.php
index f36abee..cbab5ea 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/RelationshipTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/RelationshipTest.php
@@ -102,7 +102,7 @@ public function testRelationshipQuery() {
     $view = views_get_view('test_view');
     $view->setDisplay();
 
-    $view->displayHandlers['default']->overrideOption('relationships', array(
+    $view->displayHandlers->get('default')->overrideOption('relationships', array(
       'uid' => array(
         'id' => 'uid',
         'table' => 'views_test_data',
@@ -110,7 +110,7 @@ public function testRelationshipQuery() {
       ),
     ));
 
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'uid' => array(
         'id' => 'uid',
         'table' => 'users',
@@ -119,8 +119,8 @@ public function testRelationshipQuery() {
       ),
     ));
 
-    $fields = $view->displayHandlers['default']->getOption('fields');
-    $view->displayHandlers['default']->overrideOption('fields', $fields + array(
+    $fields = $view->displayHandlers->get('default')->getOption('fields');
+    $view->displayHandlers->get('default')->overrideOption('fields', $fields + array(
       'uid' => array(
         'id' => 'uid',
         'table' => 'users',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/SortDateTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/SortDateTest.php
index 2a37a9c..d6d9462 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/SortDateTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/SortDateTest.php
@@ -161,7 +161,7 @@ public function testDateOrdering() {
         $view->setDisplay();
 
         // Change the fields.
-        $view->displayHandlers['default']->overrideOption('fields', array(
+        $view->displayHandlers->get('default')->overrideOption('fields', array(
           'name' => array(
             'id' => 'name',
             'table' => 'views_test_data',
@@ -177,7 +177,7 @@ public function testDateOrdering() {
         ));
 
         // Change the ordering
-        $view->displayHandlers['default']->overrideOption('sorts', array(
+        $view->displayHandlers->get('default')->overrideOption('sorts', array(
           'created' => array(
             'id' => 'created',
             'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/SortRandomTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/SortRandomTest.php
index a8aedf4..5790625 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/SortRandomTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/SortRandomTest.php
@@ -53,7 +53,7 @@ protected function getBasicRandomView() {
     $view->setDisplay();
 
     // Add a random ordering.
-    $view->displayHandlers['default']->overrideOption('sorts', array(
+    $view->displayHandlers->get('default')->overrideOption('sorts', array(
       'random' => array(
         'id' => 'random',
         'field' => 'random',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/SortTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/SortTest.php
index 66b9936..35c62db 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/SortTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/SortTest.php
@@ -37,7 +37,7 @@ public function testNumericOrdering() {
     $view->setDisplay();
 
     // Change the ordering
-    $view->displayHandlers['default']->overrideOption('sorts', array(
+    $view->displayHandlers->get('default')->overrideOption('sorts', array(
       'age' => array(
         'order' => 'ASC',
         'id' => 'age',
@@ -61,7 +61,7 @@ public function testNumericOrdering() {
     $view->setDisplay();
 
     // Reverse the ordering
-    $view->displayHandlers['default']->overrideOption('sorts', array(
+    $view->displayHandlers->get('default')->overrideOption('sorts', array(
       'age' => array(
         'order' => 'DESC',
         'id' => 'age',
@@ -90,7 +90,7 @@ public function testStringOrdering() {
     $view->setDisplay();
 
     // Change the ordering
-    $view->displayHandlers['default']->overrideOption('sorts', array(
+    $view->displayHandlers->get('default')->overrideOption('sorts', array(
       'name' => array(
         'order' => 'ASC',
         'id' => 'name',
@@ -114,7 +114,7 @@ public function testStringOrdering() {
     $view->setDisplay();
 
     // Reverse the ordering
-    $view->displayHandlers['default']->overrideOption('sorts', array(
+    $view->displayHandlers->get('default')->overrideOption('sorts', array(
       'name' => array(
         'order' => 'DESC',
         'id' => 'name',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
index 9402109..c22efac 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/ArgumentValidatorTest.php
@@ -33,7 +33,7 @@ function testArgumentValidatePhp() {
     $string = $this->randomName();
     $view = views_get_view('test_view_argument_validate_php');
     $view->setDisplay();
-    $view->displayHandlers['default']->options['arguments']['null']['validate_options']['code'] = 'return $argument == \''. $string .'\';';
+    $view->displayHandlers->get('default')->options['arguments']['null']['validate_options']['code'] = 'return $argument == \''. $string .'\';';
 
     $view->initHandlers();
     $this->assertTrue($view->argument['null']->validateArgument($string));
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayTest.php
index cd476c8..4883ad5 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/DisplayTest.php
@@ -122,9 +122,9 @@ public function testFilterGroupsOverriding() {
     $view->initDisplay();
 
     // mark is as overridden, yes FALSE, means overridden.
-    $view->displayHandlers['page']->setOverride('filter_groups', FALSE);
-    $this->assertFalse($view->displayHandlers['page']->isDefaulted('filter_groups'), "Take sure that 'filter_groups' is marked as overridden.");
-    $this->assertFalse($view->displayHandlers['page']->isDefaulted('filters'), "Take sure that 'filters'' is marked as overridden.");
+    $view->displayHandlers->get('page')->setOverride('filter_groups', FALSE);
+    $this->assertFalse($view->displayHandlers->get('page')->isDefaulted('filter_groups'), "Take sure that 'filter_groups' is marked as overridden.");
+    $this->assertFalse($view->displayHandlers->get('page')->isDefaulted('filters'), "Take sure that 'filters'' is marked as overridden.");
   }
 
   /**
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/FilterTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/FilterTest.php
index 7eb5d3e..0ea9d51 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/FilterTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/FilterTest.php
@@ -66,7 +66,7 @@ public function testFilterQuery() {
     $view->initDisplay();
 
     // Change the filtering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'test_filter' => array(
         'id' => 'test_filter',
         'table' => 'views_test_data',
@@ -102,7 +102,7 @@ public function testFilterQuery() {
     $view->initDisplay();
 
     // Change the filtering.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'test_filter' => array(
         'id' => 'test_filter',
         'table' => 'views_test_data',
@@ -128,7 +128,7 @@ public function testFilterQuery() {
 
     // Set the test_enable option to FALSE. The 'where' clause should not be
     // added to the query.
-    $view->displayHandlers['default']->overrideOption('filters', array(
+    $view->displayHandlers->get('default')->overrideOption('filters', array(
       'test_filter' => array(
         'id' => 'test_filter',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php
index c0db658..0ecc533 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleMappingTest.php
@@ -43,7 +43,7 @@ public function testMappedOutput() {
     $view->destroy();
 
     $view->setDisplay();
-    $view->displayHandlers['default']->options['style']['options']['mapping']['name_field'] = 'job';
+    $view->displayHandlers->get('default')->options['style']['options']['mapping']['name_field'] = 'job';
     $output = $this->mappedOutputHelper($view);
     $this->assertTrue(strpos($output, 'job') !== FALSE, 'The job field is added to the view and is in the mapping.');
   }
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
index a1fc6d1..cf065be 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
@@ -101,13 +101,13 @@ function testGroupingLegacy() {
 
     // Reduce the amount of items to make the test a bit easier.
     // Set up the pager.
-    $view->displayHandlers['default']->overrideOption('pager', array(
+    $view->displayHandlers->get('default')->overrideOption('pager', array(
       'type' => 'some',
       'options' => array('items_per_page' => 3),
     ));
 
     // Add the job field .
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
@@ -200,13 +200,13 @@ function _testGrouping($stripped = FALSE) {
 
     // Reduce the amount of items to make the test a bit easier.
     // Set up the pager.
-    $view->displayHandlers['default']->overrideOption('pager', array(
+    $view->displayHandlers->get('default')->overrideOption('pager', array(
       'type' => 'some',
       'options' => array('items_per_page' => 3),
     ));
 
     // Add the job and age field.
-    $view->displayHandlers['default']->overrideOption('fields', array(
+    $view->displayHandlers->get('default')->overrideOption('fields', array(
       'name' => array(
         'id' => 'name',
         'table' => 'views_test_data',
diff --git a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
index 509aca5..51a156c 100644
--- a/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/QueryGroupByTest.php
@@ -95,7 +95,7 @@ function GroupByTestHelper($group_by, $values) {
 
     $view = views_get_view('test_group_by_count');
     $view->setDisplay();
-    $view->displayHandlers['default']->options['fields']['nid']['group_type'] = $group_by;
+    $view->displayHandlers->get('default')->options['fields']['nid']['group_type'] = $group_by;
     $this->executeView($view);
 
     $this->assertEqual(count($view->result), 2, 'Make sure the count of items is right.');
diff --git a/core/modules/views/lib/Drupal/views/Tests/UI/DisplayAttachmentTest.php b/core/modules/views/lib/Drupal/views/Tests/UI/DisplayAttachmentTest.php
index 0f26c3f..df1a94b 100644
--- a/core/modules/views/lib/Drupal/views/Tests/UI/DisplayAttachmentTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/UI/DisplayAttachmentTest.php
@@ -48,6 +48,6 @@ public function testAttachmentUI() {
 
     $view = views_get_view('test_attachment_ui');
     $view->initDisplay();
-    $this->assertEqual(array_keys($view->displayHandlers['attachment_1']->getOption('displays')), array('default', 'page_1'), 'The attached displays got saved as expected');
+    $this->assertEqual(array_keys($view->displayHandlers->get('attachment_1')->getOption('displays')), array('default', 'page_1'), 'The attached displays got saved as expected');
   }
 }
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewElementTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewElementTest.php
index b82a200..3d9371b 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewElementTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewElementTest.php
@@ -84,7 +84,7 @@ public function testViewElement() {
     $this->assertEqual(count($xpath), 5);
 
     // Add an argument and save the view.
-    $view->displayHandlers['default']->overrideOption('arguments', array(
+    $view->displayHandlers->get('default')->overrideOption('arguments', array(
       'age' => array(
         'default_action' => 'ignore',
         'style_plugin' => 'default_summary',
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
index 79f4616..8f3ad63 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewExecutableTest.php
@@ -90,7 +90,7 @@ public function testInitMethods() {
     $view->initDisplay();
 
     $this->assertTrue($view->display_handler instanceof DefaultDisplay, 'Make sure a reference to the current display handler is set.');
-    $this->assertTrue($view->displayHandlers['default'] instanceof DefaultDisplay, 'Make sure a display handler is created for each display.');
+    $this->assertTrue($view->displayHandlers->get('default') instanceof DefaultDisplay, 'Make sure a display handler is created for each display.');
 
     $view->destroy();
     $view->initHandlers();
@@ -107,7 +107,7 @@ public function testInitMethods() {
 
     // initHandlers() should create display handlers automatically as well.
     $this->assertTrue($view->display_handler instanceof DefaultDisplay, 'Make sure a reference to the current display handler is set.');
-    $this->assertTrue($view->displayHandlers['default'] instanceof DefaultDisplay, 'Make sure a display handler is created for each display.');
+    $this->assertTrue($view->displayHandlers->get('default') instanceof DefaultDisplay, 'Make sure a display handler is created for each display.');
 
     $view_hash = spl_object_hash($view);
     $display_hash = spl_object_hash($view->display_handler);
@@ -154,35 +154,35 @@ public function testDisplays() {
     $view->initDisplay();
     $this->assertTrue($view->displayHandlers instanceof DisplayBag, 'The displayHandlers property has the right class.');
     // Tests the classes of the instances.
-    $this->assertTrue($view->displayHandlers['default'] instanceof DefaultDisplay);
-    $this->assertTrue($view->displayHandlers['page_1'] instanceof Page);
-    $this->assertTrue($view->displayHandlers['page_2'] instanceof Page);
+    $this->assertTrue($view->displayHandlers->get('default') instanceof DefaultDisplay);
+    $this->assertTrue($view->displayHandlers->get('page_1') instanceof Page);
+    $this->assertTrue($view->displayHandlers->get('page_2') instanceof Page);
 
     // After initializing the default display is the current used display.
     $this->assertEqual($view->current_display, 'default');
-    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers['default']));
+    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers->get('default')));
 
     // All handlers should have a reference to the default display.
-    $this->assertEqual(spl_object_hash($view->displayHandlers['page_1']->default_display), spl_object_hash($view->displayHandlers['default']));
-    $this->assertEqual(spl_object_hash($view->displayHandlers['page_2']->default_display), spl_object_hash($view->displayHandlers['default']));
+    $this->assertEqual(spl_object_hash($view->displayHandlers->get('page_1')->default_display), spl_object_hash($view->displayHandlers->get('default')));
+    $this->assertEqual(spl_object_hash($view->displayHandlers->get('page_2')->default_display), spl_object_hash($view->displayHandlers->get('default')));
 
     // Tests Drupal\views\ViewExecutable::setDisplay().
     $view->setDisplay();
     $this->assertEqual($view->current_display, 'default', 'If setDisplay is called with no parameter the default display should be used.');
-    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers['default']));
+    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers->get('default')));
 
     // Set two different valid displays.
     $view->setDisplay('page_1');
     $this->assertEqual($view->current_display, 'page_1', 'If setDisplay is called with a valid display id the appropriate display should be used.');
-    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers['page_1']));
+    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers->get('page_1')));
 
     $view->setDisplay('page_2');
     $this->assertEqual($view->current_display, 'page_2', 'If setDisplay is called with a valid display id the appropriate display should be used.');
-    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers['page_2']));
+    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers->get('page_2')));
 
     $view->setDisplay('invalid');
     $this->assertEqual($view->current_display, 'default', 'If setDisplay is called with an invalid display id the default display should be used.');
-    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers['default']));
+    $this->assertEqual(spl_object_hash($view->display_handler), spl_object_hash($view->displayHandlers->get('default')));
   }
 
   /**
@@ -201,7 +201,7 @@ public function testPropertyMethods() {
     $this->assertNull($view->usePager());
 
     // Add a pager, initialize, and test.
-    $view->displayHandlers['default']->overrideOption('pager', array(
+    $view->displayHandlers->get('default')->overrideOption('pager', array(
       'type' => 'full',
       'options' => array('items_per_page' => 10),
     ));
@@ -233,7 +233,7 @@ public function testPropertyMethods() {
 
     // Test the getPath() method.
     $path = $this->randomName();
-    $view->displayHandlers['page_1']->overrideOption('path', $path);
+    $view->displayHandlers->get('page_1')->overrideOption('path', $path);
     $view->setDisplay('page_1');
     $this->assertEqual($view->getPath(), $path);
     // Test the override_path property override.
@@ -277,9 +277,7 @@ public function testDestroy() {
    * @param \Drupal\views\ViewExecutable $view
    */
   protected function assertViewDestroy($view) {
-    $this->assertFalse(isset($view->displayHandlers['default']), 'Make sure all displays are destroyed.');
-    $this->assertFalse(isset($view->displayHandlers['attachment_1']), 'Make sure all displays are destroyed.');
-
+    $this->assertFalse(isset($view->displayHandlers), 'Make sure all displays are destroyed');
     $this->assertFalse(isset($view->filter), 'Make sure all filter handlers are destroyed');
     $this->assertFalse(isset($view->field), 'Make sure all field handlers are destroyed');
     $this->assertFalse(isset($view->argument), 'Make sure all argument handlers are destroyed');
@@ -341,7 +339,7 @@ public function testValidate() {
     $this->assertEqual(count($view->displayHandlers), $count, 'Error messages from all handlers merged.');
 
     // Test that a deleted display is not included.
-    $view->displayHandlers['default']->deleted = TRUE;
+    $view->displayHandlers->get('default')->deleted = TRUE;
     $validate_deleted = $view->validate();
 
     $this->assertNotEqual(count($validate), count($validate_deleted));
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
index 57a6f85..67cd259 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewStorageTest.php
@@ -327,12 +327,12 @@ protected function displayMethodTests() {
     $executable = $view->get('executable');
     $executable->initDisplay();
 
-    $this->assertTrue($executable->displayHandlers['page_1'] instanceof Page);
-    $this->assertTrue($executable->displayHandlers['page_1']->default_display instanceof DefaultDisplay);
-    $this->assertTrue($executable->displayHandlers['page_2'] instanceof Page);
-    $this->assertTrue($executable->displayHandlers['page_2']->default_display instanceof DefaultDisplay);
-    $this->assertTrue($executable->displayHandlers['feed_1'] instanceof Feed);
-    $this->assertTrue($executable->displayHandlers['feed_1']->default_display instanceof DefaultDisplay);
+    $this->assertTrue($executable->displayHandlers->get('page_1') instanceof Page);
+    $this->assertTrue($executable->displayHandlers->get('page_1')->default_display instanceof DefaultDisplay);
+    $this->assertTrue($executable->displayHandlers->get('page_2') instanceof Page);
+    $this->assertTrue($executable->displayHandlers->get('page_2')->default_display instanceof DefaultDisplay);
+    $this->assertTrue($executable->displayHandlers->get('feed_1') instanceof Feed);
+    $this->assertTrue($executable->displayHandlers->get('feed_1')->default_display instanceof DefaultDisplay);
 
     // Tests item related methods().
     $view = $this->controller->create(array('base_table' => 'views_test_data'));
diff --git a/core/modules/views/lib/Drupal/views/Tests/ViewsDataTest.php b/core/modules/views/lib/Drupal/views/Tests/ViewsDataTest.php
index ee47515..30ae82d 100644
--- a/core/modules/views/lib/Drupal/views/Tests/ViewsDataTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/ViewsDataTest.php
@@ -14,13 +14,6 @@
  */
 class ViewsDataTest extends ViewUnitTestBase {
 
-  /**
-   * Stores the views data cache service used by this test.
-   *
-   * @var \Drupal\views\ViewsDataCache
-   */
-  protected $viewsDataCache;
-
   public static function getInfo() {
     return array(
       'name' => 'Table Data',
@@ -38,15 +31,10 @@ public function testViewsFetchData() {
     $table_name = 'views_test_data';
     $expected_data = $this->viewsData();
 
-    $this->viewsDataCache = drupal_container()->get('views.views_data');
-
-    $data = $this->viewsDataCache->get($table_name);
+    $data = drupal_container()->get('views.views_data')->get($table_name);
     $this->assertEqual($data, $expected_data[$table_name], 'Make sure fetching views data by table works as expected.');
 
-    $data = $this->viewsDataCache->get($this->randomName());
-    $this->assertTrue(empty($data), 'Make sure fetching views data for an invalid table returns empty.');
-
-    $data = $this->viewsDataCache->get();
+    $data = drupal_container()->get('views.views_data')->get();
     $this->assertTrue(isset($data[$table_name]), 'Make sure the views_test_data info appears in the total views data.');
     $this->assertEqual($data[$table_name], $expected_data[$table_name], 'Make sure the views_test_data has the expected values.');
   }
diff --git a/core/modules/views/lib/Drupal/views/ViewExecutable.php b/core/modules/views/lib/Drupal/views/ViewExecutable.php
index ec1fc6d..874f340 100644
--- a/core/modules/views/lib/Drupal/views/ViewExecutable.php
+++ b/core/modules/views/lib/Drupal/views/ViewExecutable.php
@@ -592,7 +592,7 @@ public function initDisplay() {
     $this->displayHandlers = new DisplayBag($this, drupal_container()->get('plugin.manager.views.display'));
 
     $this->current_display = 'default';
-    $this->display_handler = $this->displayHandlers['default'];
+    $this->display_handler = $this->displayHandlers->get('default');
 
     return TRUE;
   }
@@ -614,7 +614,7 @@ public function chooseDisplay($displays) {
     $this->initDisplay();
 
     foreach ($displays as $display_id) {
-      if ($this->displayHandlers[$display_id]->access()) {
+      if ($this->displayHandlers->get($display_id)->access()) {
         return $display_id;
       }
     }
@@ -648,9 +648,9 @@ public function setDisplay($display_id = NULL) {
     }
 
     // Ensure the requested display exists.
-    if (empty($this->displayHandlers[$display_id])) {
+    if (!$this->displayHandlers->has($display_id)) {
       $display_id = 'default';
-      if (empty($this->displayHandlers[$display_id])) {
+      if (!$this->displayHandlers->has($display_id)) {
         debug(format_string('set_display() called with invalid display ID @display.', array('@display' => $display_id)));
         return FALSE;
       }
@@ -660,12 +660,12 @@ public function setDisplay($display_id = NULL) {
     $this->current_display = $display_id;
 
     // Ensure requested display has a working handler.
-    if (empty($this->displayHandlers[$display_id])) {
+    if (!$this->displayHandlers->has($display_id)) {
       return FALSE;
     }
 
     // Set a shortcut
-    $this->display_handler = $this->displayHandlers[$display_id];
+    $this->display_handler = $this->displayHandlers->get($display_id);
 
     return TRUE;
   }
@@ -1450,7 +1450,7 @@ public function attachDisplays() {
     foreach ($this->display_handler->getAttachedDisplays() as $id) {
       // Create a clone for the attachments to manipulate. 'static' refers to the current class name.
       $cloned_view = new static($this->storage);
-      $this->displayHandlers[$id]->attachTo($cloned_view, $this->current_display);
+      $this->displayHandlers->get($id)->attachTo($cloned_view, $this->current_display);
     }
     $this->is_attachment = FALSE;
   }
@@ -1499,8 +1499,8 @@ public function access($displays = NULL, $account = NULL) {
     // calls this one.
     $displays = (array)$displays;
     foreach ($displays as $display_id) {
-      if (!empty($this->displayHandlers[$display_id])) {
-        if ($this->displayHandlers[$display_id]->access($account)) {
+      if ($this->displayHandlers->has($display_id)) {
+        if ($this->displayHandlers->get($display_id)->access($account)) {
           return TRUE;
         }
       }
@@ -1824,7 +1824,7 @@ public function validate() {
           continue;
         }
 
-        $result = $this->displayHandlers[$id]->validate();
+        $result = $this->displayHandlers->get($id)->validate();
         if (!empty($result) && is_array($result)) {
           $errors = array_merge($errors, $result);
           // Mark this display as having validation errors.
@@ -1978,7 +1978,7 @@ public function addItem($display_id, $type, $table, $field, $options = array(),
     $types = $this::viewsHandlerTypes();
     $this->setDisplay($display_id);
 
-    $fields = $this->displayHandlers[$display_id]->getOption($types[$type]['plural']);
+    $fields = $this->displayHandlers->get($display_id)->getOption($types[$type]['plural']);
 
     if (empty($id)) {
       $id = $this->generateItemId($field, $fields);
@@ -1996,7 +1996,7 @@ public function addItem($display_id, $type, $table, $field, $options = array(),
       'field' => $field,
     ) + $options;
 
-    $this->displayHandlers[$display_id]->setOption($types[$type]['plural'], $fields);
+    $this->displayHandlers->get($display_id)->setOption($types[$type]['plural'], $fields);
 
     return $id;
   }
@@ -2072,7 +2072,7 @@ public function getItem($display_id, $type, $id) {
     $this->setDisplay($display_id);
 
     // Get the existing configuration
-    $fields = $this->displayHandlers[$display_id]->getOption($types[$type]['plural']);
+    $fields = $this->displayHandlers->get($display_id)->getOption($types[$type]['plural']);
 
     return isset($fields[$id]) ? $fields[$id] : NULL;
   }
@@ -2107,7 +2107,7 @@ public function setItem($display_id, $type, $id, $item) {
     $this->setDisplay($display_id);
 
     // Get the existing configuration.
-    $fields = $this->displayHandlers[$display_id]->getOption($types[$type]['plural']);
+    $fields = $this->displayHandlers->get($display_id)->getOption($types[$type]['plural']);
     if (isset($item)) {
       $fields[$id] = $item;
     }
@@ -2138,7 +2138,7 @@ public function removeItem($display_id, $type, $id) {
     unset($fields[$id]);
 
     // Store.
-    $this->displayHandlers[$display_id]->setOption($types[$type]['plural'], $fields);
+    $this->displayHandlers->get($display_id)->setOption($types[$type]['plural'], $fields);
   }
 
   /**
@@ -2166,5 +2166,4 @@ public function setItemOption($display_id, $type, $id, $option, $value) {
     $item[$option] = $value;
     $this->setItem($display_id, $type, $id, $item);
   }
-
 }
diff --git a/core/modules/views/lib/Drupal/views/ViewsDataCache.php b/core/modules/views/lib/Drupal/views/ViewsDataCache.php
index 2f38051..4df7ff5 100644
--- a/core/modules/views/lib/Drupal/views/ViewsDataCache.php
+++ b/core/modules/views/lib/Drupal/views/ViewsDataCache.php
@@ -105,8 +105,6 @@ public function get($key = NULL) {
       if (isset($this->storage[$key])) {
         return $this->storage[$key];
       }
-      // If the key is invalid, return an empty array.
-      return array();
     }
     else {
       if (!$this->fullyLoaded) {
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index f4d8404..3e4e7e2 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -618,7 +618,7 @@ function views_add_contextual_links(&$render_element, $location, ViewExecutable
     // Also do not do anything if the display plugin has not defined any
     // contextual links that are intended to be displayed in the requested
     // location.
-    $plugin_id = $view->displayHandlers[$display_id]->getPluginId();
+    $plugin_id = $view->displayHandlers->get($display_id)->getPluginId();
     $plugin = drupal_container()->get('plugin.manager.views.display')->getDefinition($plugin_id);
     // If contextual_links_locations are not set, provide a sane default. (To
     // avoid displaying any contextual links at all, a display plugin can still
diff --git a/core/modules/views/views.theme.inc b/core/modules/views/views.theme.inc
index d7091c7..23dc731 100644
--- a/core/modules/views/views.theme.inc
+++ b/core/modules/views/views.theme.inc
@@ -890,8 +890,8 @@ function template_preprocess_views_view_rss(&$vars) {
   // Figure out which display which has a path we're using for this feed. If there isn't
   // one, use the global $base_url
   $link_display_id = $view->display_handler->getLinkDisplay();
-  if ($link_display_id && !empty($view->displayHandlers[$link_display_id])) {
-    $path = $view->displayHandlers[$link_display_id]->getPath();
+  if ($link_display_id && $display = $view->displayHandlers->get($link_display_id)) {
+    $path = $view->displayHandlers->get($link_display_id)->getPath();
   }
 
   if ($path) {
diff --git a/core/modules/views/views_ui/admin.inc b/core/modules/views/views_ui/admin.inc
index 06881a9..2639878 100644
--- a/core/modules/views/views_ui/admin.inc
+++ b/core/modules/views/views_ui/admin.inc
@@ -771,7 +771,7 @@ function views_ui_edit_display_form($form, &$form_state) {
  * Validate handler for views_ui_edit_display_form
  */
 function views_ui_edit_display_form_validate($form, &$form_state) {
-  $form_state['view']->get('executable')->displayHandlers[$form_state['display_id']]->validateOptionsForm($form['options'], $form_state);
+  $form_state['view']->get('executable')->displayHandlers->get($form_state['display_id'])->validateOptionsForm($form['options'], $form_state);
 
   if (form_get_errors()) {
     $form_state['rerender'] = TRUE;
@@ -782,7 +782,7 @@ function views_ui_edit_display_form_validate($form, &$form_state) {
  * Submit handler for views_ui_edit_display_form
  */
 function views_ui_edit_display_form_submit($form, &$form_state) {
-  $form_state['view']->get('executable')->displayHandlers[$form_state['display_id']]->submitOptionsForm($form['options'], $form_state);
+  $form_state['view']->get('executable')->displayHandlers->get($form_state['display_id'])->submitOptionsForm($form['options'], $form_state);
 
   views_ui_cache_set($form_state['view']);
 }
@@ -793,7 +793,7 @@ function views_ui_edit_display_form_submit($form, &$form_state) {
  * @TODO: Not currently used. Remove unless we implement an override toggle.
  */
 function views_ui_edit_display_form_override($form, &$form_state) {
-  $form_state['view']->get('executable')->displayHandlers[$form_state['display_id']]->optionsOverride($form['options'], $form_state);
+  $form_state['view']->get('executable')->displayHandlers->get($form_state['display_id'])->optionsOverride($form['options'], $form_state);
 
   views_ui_cache_set($form_state['view']);
   $form_state['rerender'] = TRUE;
@@ -813,7 +813,7 @@ function views_ui_rearrange_form($form, &$form_state) {
   if (!$executable->setDisplay($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$executable->displayHandlers[$display_id];
+  $display = &$executable->displayHandlers->get($display_id);
   $form['#title'] = t('Rearrange @type', array('@type' => $types[$type]['ltitle']));
   $form['#section'] = $display_id . 'rearrange-item';
 
@@ -893,7 +893,7 @@ function views_ui_rearrange_form($form, &$form_state) {
  */
 function views_ui_rearrange_form_submit($form, &$form_state) {
   $types = ViewExecutable::viewsHandlerTypes();
-  $display = &$form_state['view']->get('executable')->displayHandlers[$form_state['display_id']];
+  $display = &$form_state['view']->get('executable')->displayHandlers->get($form_state['display_id']);
 
   $old_fields = $display->getOption($types[$form_state['type']]['plural']);
   $new_fields = $order = array();
@@ -933,7 +933,7 @@ function views_ui_rearrange_filter_form($form, &$form_state) {
   if (!$executable->setDisplay($display_id)) {
     views_ajax_render(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = $executable->displayHandlers[$display_id];
+  $display = $executable->displayHandlers->get($display_id);
   $form['#title'] = check_plain($display->display['display_title']) . ': ';
   $form['#title'] .= t('Rearrange @type', array('@type' => $types[$type]['ltitle']));
   $form['#section'] = $display_id . 'rearrange-item';
@@ -1103,7 +1103,7 @@ function views_ui_rearrange_filter_form($form, &$form_state) {
  */
 function views_ui_rearrange_filter_form_submit($form, &$form_state) {
   $types = ViewExecutable::viewsHandlerTypes();
-  $display = &$form_state['view']->get('executable')->displayHandlers[$form_state['display_id']];
+  $display = &$form_state['view']->get('executable')->displayHandlers->get($form_state['display_id']);
   $remember_groups = array();
 
   if (!empty($form_state['view']->form_cache)) {
@@ -1225,7 +1225,7 @@ function views_ui_add_item_form($form, &$form_state) {
   if (!$executable->setDisplay($display_id)) {
     views_ajax_error(t('Invalid display id @display', array('@display' => $display_id)));
   }
-  $display = &$executable->displayHandlers[$display_id];
+  $display = &$executable->displayHandlers->get($display_id);
 
   $types = ViewExecutable::viewsHandlerTypes();
   $ltitle = $types[$type]['ltitle'];
@@ -1709,7 +1709,7 @@ function views_ui_config_item_form_remove($form, &$form_state) {
   list($was_defaulted, $is_defaulted) = $form_state['view']->getOverrideValues($form, $form_state);
   // If the display selection was changed toggle the override value.
   if ($was_defaulted != $is_defaulted) {
-    $display =& $form_state['view']->get('executable')->displayHandlers[$form_state['display_id']];
+    $display =& $form_state['view']->get('executable')->displayHandlers->get($form_state['display_id']);
     $display->optionsOverride($form, $form_state);
   }
   $form_state['view']->get('executable')->removeItem($form_state['display_id'], $form_state['type'], $form_state['id']);
diff --git a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
index c8a2c96..2a9b78b 100644
--- a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
+++ b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewEditFormController.php
@@ -139,8 +139,8 @@ public function form(array $form, array &$form_state, EntityInterface $view) {
       $display_title = $this->getDisplayLabel($view, $display_id, FALSE);
 
       // Add a text that the display is disabled.
-      if (!empty($view->get('executable')->displayHandlers[$display_id])) {
-        if (!$view->get('executable')->displayHandlers[$display_id]->isEnabled()) {
+      if ($view->get('executable')->displayHandlers->has($display_id)) {
+        if (!$view->get('executable')->displayHandlers->get($display_id)->isEnabled()) {
           $form['displays']['settings']['disabled']['#markup'] = t('This display is disabled.');
         }
       }
@@ -156,7 +156,8 @@ public function form(array $form, array &$form_state, EntityInterface $view) {
         $tab_content['#attributes']['class'][] = 'views-display-deleted';
       }
       // Mark disabled displays as such.
-      if (isset($view->get('executable')->displayHandlers[$display_id]) && !$view->get('executable')->displayHandlers[$display_id]->isEnabled()) {
+
+      if ($view->get('executable')->displayHandlers->has($display_id) && !$view->get('executable')->displayHandlers->get($display_id)->isEnabled()) {
         $tab_content['#attributes']['class'][] = 'views-display-disabled';
       }
       $form['displays']['settings']['settings_content'] = array(
@@ -224,7 +225,7 @@ public function submit(array $form, array &$form_state) {
     $displays = $view->get('display');
     foreach ($displays as $id => $display) {
       if (!empty($display['deleted'])) {
-        unset($view->get('executable')->displayHandlers[$id]);
+        $view->get('executable')->displayHandlers->remove($id);
         unset($displays[$id]);
       }
     }
@@ -232,8 +233,8 @@ public function submit(array $form, array &$form_state) {
     foreach ($view->get('executable')->displayHandlers as $id => $display) {
       if (!empty($display->display['new_id'])) {
         $new_id = $display->display['new_id'];
-        $view->get('executable')->displayHandlers[$new_id] = $view->get('executable')->displayHandlers[$id];
-        $view->get('executable')->displayHandlers[$new_id]->display['id'] = $new_id;
+        $view->get('executable')->displayHandlers->set($new_id, $view->get('executable')->displayHandlers->get($id));
+        $view->get('executable')->displayHandlers->get($new_id)->display['id'] = $new_id;
 
         $displays[$new_id] = $displays[$id];
         unset($displays[$id]);
@@ -258,8 +259,8 @@ public function submit(array $form, array &$form_state) {
           continue;
         }
 
-        if (($display->getPluginId() == 'page') && ($old_path == $destination) && ($old_path != $view->get('executable')->displayHandlers[$id]->getOption('path'))) {
-          $destination = $view->get('executable')->displayHandlers[$id]->getOption('path');
+        if (($display->getPluginId() == 'page') && ($old_path == $destination) && ($old_path != $view->get('executable')->displayHandlers->get($id)->getOption('path'))) {
+          $destination = $view->get('executable')->displayHandlers->get($id)->getOption('path');
           $query->remove('destination');
           // @todo For whatever reason drupal_goto is still using $_GET.
           // @see http://drupal.org/node/1668866
@@ -314,7 +315,7 @@ protected function actionsElement(array $form, array &$form_state) {
   public function getDisplayTab($view) {
     $build = array();
     $display_id = $view->displayID;
-    $display = $view->get('executable')->displayHandlers[$display_id];
+    $display = $view->get('executable')->displayHandlers->get($display_id);
     // If the plugin doesn't exist, display an error message instead of an edit
     // page.
     if (empty($display)) {
@@ -351,7 +352,7 @@ public function getDisplayDetails($view, $display) {
     // The master display cannot be cloned.
     $is_default = $display['id'] == 'default';
     // @todo: Figure out why getOption doesn't work here.
-    $is_enabled = $view->get('executable')->displayHandlers[$display['id']]->isEnabled();
+    $is_enabled = $view->get('executable')->displayHandlers->get($display['id'])->isEnabled();
 
     if ($display['id'] != 'default') {
       $build['top']['#theme_wrappers'] = array('container');
@@ -379,8 +380,8 @@ public function getDisplayDetails($view, $display) {
           );
         }
         // Add a link to view the page.
-        elseif ($view->get('executable')->displayHandlers[$display['id']]->hasPath()) {
-          $path = $view->get('executable')->displayHandlers[$display['id']]->getPath();
+        elseif ($view->get('executable')->displayHandlers->get($display['id'])->hasPath()) {
+          $path = $view->get('executable')->displayHandlers->get($display['id'])->getPath();
           if (strpos($path, '%') === FALSE) {
             $build['top']['actions']['path'] = array(
               '#type' => 'link',
@@ -438,7 +439,7 @@ public function getDisplayDetails($view, $display) {
       $build['top']['display_title'] = array(
         '#theme' => 'views_ui_display_tab_setting',
         '#description' => t('Display name'),
-        '#link' => $view->get('executable')->displayHandlers[$display['id']]->optionLink(check_plain($display_title), 'display_title'),
+        '#link' => $view->get('executable')->displayHandlers->get($display['id'])->optionLink(check_plain($display_title), 'display_title'),
       );
     }
 
@@ -483,7 +484,7 @@ public function getDisplayDetails($view, $display) {
 
     // Fetch options from the display plugin, with a list of buckets they go into.
     $options = array();
-    $view->get('executable')->displayHandlers[$display['id']]->optionsSummary($buckets, $options);
+    $view->get('executable')->displayHandlers->get($display['id'])->optionsSummary($buckets, $options);
 
     // Place each option into its bucket.
     foreach ($options as $id => $option) {
@@ -547,7 +548,7 @@ public function submitDisplayEnable($form, &$form_state) {
     $view = $this->getEntity($form_state);
     $id = $form_state['display_id'];
     // setOption doesn't work because this would might affect upper displays
-    $view->get('executable')->displayHandlers[$id]->setOption('enabled', TRUE);
+    $view->get('executable')->displayHandlers->get($id)->setOption('enabled', TRUE);
 
     // Store in cache
     views_ui_cache_set($view);
@@ -562,7 +563,7 @@ public function submitDisplayEnable($form, &$form_state) {
   public function submitDisplayDisable($form, &$form_state) {
     $view = $this->getEntity($form_state);
     $id = $form_state['display_id'];
-    $view->get('executable')->displayHandlers[$id]->setOption('enabled', FALSE);
+    $view->get('executable')->displayHandlers->get($id)->setOption('enabled', FALSE);
 
     // Store in cache
     views_ui_cache_set($view);
@@ -777,23 +778,23 @@ public function buildOptionForm(ViewUI $view, $id, $option, $display) {
 
     $option_build['#description'] = $option['title'];
 
-    $option_build['#link'] = $view->get('executable')->displayHandlers[$display['id']]->optionLink($option['value'], $id, '', empty($option['desc']) ? '' : $option['desc']);
+    $option_build['#link'] = $view->get('executable')->displayHandlers->get($display['id'])->optionLink($option['value'], $id, '', empty($option['desc']) ? '' : $option['desc']);
 
     $option_build['#links'] = array();
     if (!empty($option['links']) && is_array($option['links'])) {
       foreach ($option['links'] as $link_id => $link_value) {
-        $option_build['#settings_links'][] = $view->get('executable')->displayHandlers[$display['id']]->optionLink($option['setting'], $link_id, 'views-button-configure', $link_value);
+        $option_build['#settings_links'][] = $view->get('executable')->displayHandlers->get($display['id'])->optionLink($option['setting'], $link_id, 'views-button-configure', $link_value);
       }
     }
 
-    if (!empty($view->get('executable')->displayHandlers[$display['id']]->options['defaults'][$id])) {
+    if (!empty($view->get('executable')->displayHandlers->get($display['id'])->options['defaults'][$id])) {
       $display_id = 'default';
       $option_build['#defaulted'] = TRUE;
     }
     else {
       $display_id = $display['id'];
-      if (!$view->get('executable')->displayHandlers[$display['id']]->isDefaultDisplay()) {
-        if ($view->get('executable')->displayHandlers[$display['id']]->defaultableSections($id)) {
+      if (!$view->get('executable')->displayHandlers->get($display['id'])->isDefaultDisplay()) {
+        if ($view->get('executable')->displayHandlers->get($display['id'])->defaultableSections($id)) {
           $option_build['#overridden'] = TRUE;
         }
       }
@@ -827,7 +828,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
         break;
       case 'field':
         // Fetch the style plugin info so we know whether to list fields or not.
-        $style_plugin = $view->get('executable')->displayHandlers[$display['id']]->getPlugin('style');
+        $style_plugin = $view->get('executable')->displayHandlers->get($display['id'])->getPlugin('style');
         $uses_fields = $style_plugin && $style_plugin->usesFields();
         if (!$uses_fields) {
           $build['fields'][] = array(
@@ -840,7 +841,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
       case 'header':
       case 'footer':
       case 'empty':
-        if (!$view->get('executable')->displayHandlers[$display['id']]->usesAreas()) {
+        if (!$view->get('executable')->displayHandlers->get($display['id'])->usesAreas()) {
           $build[$type][] = array(
             '#markup' => t('The selected display type does not utilize @type plugins', array('@type' => $type)),
             '#theme_wrappers' => array('views_ui_container'),
@@ -856,7 +857,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
 
     // Create an array of actions to pass to theme_links
     $actions = array();
-    $count_handlers = count($view->get('executable')->displayHandlers[$display['id']]->getHandlers($type));
+    $count_handlers = count($view->get('executable')->displayHandlers->get($display['id'])->getHandlers($type));
     $actions['add'] = array(
       'title' => t('Add'),
       'href' => "admin/structure/views/nojs/add-item/{$view->get('name')}/{$display['id']}/$type",
@@ -881,8 +882,8 @@ public function getFormBucket(ViewUI $view, $type, $display) {
       ),
     );
 
-    if (!$view->get('executable')->displayHandlers[$display['id']]->isDefaultDisplay()) {
-      if (!$view->get('executable')->displayHandlers[$display['id']]->isDefaulted($types[$type]['plural'])) {
+    if (!$view->get('executable')->displayHandlers->get($display['id'])->isDefaultDisplay()) {
+      if (!$view->get('executable')->displayHandlers->get($display['id'])->isDefaulted($types[$type]['plural'])) {
         $build['#overridden'] = TRUE;
       }
       else {
@@ -894,7 +895,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
     if (!isset($relationships)) {
       // Get relationship labels
       $relationships = array();
-      foreach ($view->get('executable')->displayHandlers[$display['id']]->getHandlers('relationship') as $id => $handler) {
+      foreach ($view->get('executable')->displayHandlers->get($display['id'])->getHandlers('relationship') as $id => $handler) {
         $relationships[$id] = $handler->label();
       }
     }
@@ -915,12 +916,12 @@ public function getFormBucket(ViewUI $view, $type, $display) {
 
     $build['fields'] = array();
 
-    foreach ($view->get('executable')->displayHandlers[$display['id']]->getOption($types[$type]['plural']) as $id => $field) {
+    foreach ($view->get('executable')->displayHandlers->get($display['id'])->getOption($types[$type]['plural']) as $id => $field) {
       // Build the option link for this handler ("Node: ID = article").
       $build['fields'][$id] = array();
       $build['fields'][$id]['#theme'] = 'views_ui_display_tab_setting';
 
-      $handler = $view->get('executable')->displayHandlers[$display['id']]->getHandler($type, $id);
+      $handler = $view->get('executable')->displayHandlers->get($display['id'])->getHandler($type, $id);
       if (empty($handler)) {
         $build['fields'][$id]['#class'][] = 'broken';
         $field_name = t('Broken/missing handler: @table > @field', array('@table' => $field['table'], '@field' => $field['field']));
@@ -942,7 +943,7 @@ public function getFormBucket(ViewUI $view, $type, $display) {
       $build['fields'][$id]['#link'] = l($link_text, "admin/structure/views/nojs/config-item/{$view->get('name')}/{$display['id']}/$type/$id", array('attributes' => $link_attributes, 'html' => TRUE));
       $build['fields'][$id]['#class'][] = drupal_clean_css_identifier($display['id']. '-' . $type . '-' . $id);
 
-      if ($view->get('executable')->displayHandlers[$display['id']]->useGroupBy() && $handler->usesGroupBy()) {
+      if ($view->get('executable')->displayHandlers->get($display['id'])->useGroupBy() && $handler->usesGroupBy()) {
         $build['fields'][$id]['#settings_links'][] = l('<span class="label">' . t('Aggregation settings') . '</span>', "admin/structure/views/nojs/config-item-group/{$view->get('name')}/{$display['id']}/$type/$id", array('attributes' => array('class' => 'views-button-configure views-ajax-link', 'title' => t('Aggregation settings')), 'html' => TRUE));
       }
 
diff --git a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewUI.php b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewUI.php
index db6c900..c389d66 100644
--- a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewUI.php
+++ b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewUI.php
@@ -170,7 +170,7 @@ public function standardSubmit($form, &$form_state) {
     // these changes apply to.
     if ($revert) {
       // If it's revert just change the override and return.
-      $display = &$this->executable->displayHandlers[$form_state['display_id']];
+      $display = &$this->executable->displayHandlers->get($form_state['display_id']);
       $display->optionsOverride($form, $form_state);
 
       // Don't execute the normal submit handling but still store the changed view into cache.
@@ -184,7 +184,7 @@ public function standardSubmit($form, &$form_state) {
     elseif ($was_defaulted && !$is_defaulted) {
       // We were using the default display's values, but we're now overriding
       // the default display and saving values specific to this display.
-      $display = &$this->executable->displayHandlers[$form_state['display_id']];
+      $display = &$this->executable->displayHandlers->get($form_state['display_id']);
       // optionsOverride toggles the override of this section.
       $display->optionsOverride($form, $form_state);
       $display->submitOptionsForm($form, $form_state);
@@ -194,7 +194,7 @@ public function standardSubmit($form, &$form_state) {
       // to go back to the default display.
       // Overwrite the default display with the current form values, and make
       // the current display use the new default values.
-      $display = &$this->executable->displayHandlers[$form_state['display_id']];
+      $display = &$this->executable->displayHandlers->get($form_state['display_id']);
       // optionsOverride toggles the override of this section.
       $display->optionsOverride($form, $form_state);
       $display->submitOptionsForm($form, $form_state);
@@ -527,7 +527,7 @@ public function submitItemAdd($form, &$form_state) {
     if ($was_defaulted && !$is_defaulted) {
       // We were using the default display's values, but we're now overriding
       // the default display and saving values specific to this display.
-      $display = &$this->executable->displayHandlers[$form_state['display_id']];
+      $display = &$this->executable->displayHandlers->get($form_state['display_id']);
       // setOverride toggles the override of this section.
       $display->setOverride($section);
     }
@@ -536,7 +536,7 @@ public function submitItemAdd($form, &$form_state) {
       // to go back to the default display.
       // Overwrite the default display with the current form values, and make
       // the current display use the new default values.
-      $display = &$this->executable->displayHandlers[$form_state['display_id']];
+      $display = &$this->executable->displayHandlers->get($form_state['display_id']);
       // optionsOverride toggles the override of this section.
       $display->setOverride($section);
     }
diff --git a/core/modules/views/views_ui/views_ui.module b/core/modules/views/views_ui/views_ui.module
index e3e9362..81f14fc 100644
--- a/core/modules/views/views_ui/views_ui.module
+++ b/core/modules/views/views_ui/views_ui.module
@@ -375,7 +375,7 @@ function views_ui_cache_set(ViewUI $view) {
   unset($executable->display_handler);
   unset($executable->default_display);
   $executable->query = NULL;
-  $executable->displayHandlers = array();
+  unset($executable->displayHandlers);
   drupal_container()->get('user.tempstore')->get('views')->set($view->get('name'), $view);
 }
 
