diff --git a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
index dade1df..fd063c8 100644
--- a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
+++ b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
@@ -753,6 +753,7 @@ protected function buildGroupOptions() {
    * single filter.
    */
   public function groupForm(&$form, FormStateInterface $form_state) {
+    $groups = array();
     if (!empty($this->options['group_info']['optional']) && !$this->multipleExposedInput()) {
       $groups = array('All' => $this->t('- Any -'));
     }
@@ -992,15 +993,17 @@ protected function buildExposedFiltersGroupForm(&$form, FormStateInterface $form
       $children = Element::children($row['value']);
       if (!empty($children)) {
         foreach ($children as $child) {
-          foreach ($row['value'][$child]['#states']['visible'] as $state) {
-            if (isset($state[':input[name="options[group_info][group_items][' . $item_id . '][operator]"]'])) {
-              $row['value'][$child]['#title'] = '';
-
-              if (!empty($this->options['group_info']['group_items'][$item_id]['value'][$child])) {
-                $row['value'][$child]['#default_value'] = $this->options['group_info']['group_items'][$item_id]['value'][$child];
+          if (isset($row['value'][$child]['#states']['visible'])) {
+            foreach ($row['value'][$child]['#states']['visible'] as $state) {
+              if (isset($state[':input[name="options[group_info][group_items][' . $item_id . '][operator]"]'])) {
+                $row['value'][$child]['#title'] = '';
+
+                if (!empty($this->options['group_info']['group_items'][$item_id]['value'][$child])) {
+                  $row['value'][$child]['#default_value'] = $this->options['group_info']['group_items'][$item_id]['value'][$child];
+                }
+                // Exit this loop and process the next child element.
+                break;
               }
-              // Exit this loop and process the next child element.
-              break;
             }
           }
         }
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_plugin_base.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_plugin_base.yml
new file mode 100644
index 0000000..9bfcd21
--- /dev/null
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_filter_plugin_base.yml
@@ -0,0 +1,36 @@
+langcode: und
+status: true
+dependencies: {  }
+id: test_filter_plugin_base
+label: ''
+module: views
+description: ''
+tag: ''
+base_table: views_test_data
+base_field: nid
+core: '8'
+display:
+  default:
+    display_options:
+      access:
+        type: none
+      cache:
+        type: none
+      exposed_form:
+        type: basic
+      pager:
+        type: none
+      style:
+        type: default
+      row:
+        type: fields
+      fields:
+        id:
+          field: id
+          table: views_test_data
+          id: id
+          plugin_id: numeric
+    display_plugin: default
+    display_title: Master
+    id: default
+    position: 0
diff --git a/core/modules/views_ui/src/Tests/FilterPluginBaseTest.php b/core/modules/views_ui/src/Tests/FilterPluginBaseTest.php
new file mode 100644
index 0000000..f115f3e
--- /dev/null
+++ b/core/modules/views_ui/src/Tests/FilterPluginBaseTest.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views_ui\Tests\FilterPluginBaseTest.
+ */
+
+namespace Drupal\views_ui\Tests;
+
+/**
+ * Tests the FilterPluginBase class.
+ *
+ * @group views
+ * @see \Drupal\views\Plugin\views\filter\FilterPluginBase
+ */
+class FilterPluginBaseTest extends UITestBase {
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = array('test_filter_plugin_base');
+
+  /**
+   * Tests whether the FilterPluginTest::groupForm() function works as expected.
+   */
+  public function testGroupForm() {
+    $edit = [
+      'name[views_test_data.created]' => TRUE,
+      'name[views_test_data.status]' => TRUE
+    ];
+    $this->drupalPostForm('admin/structure/views/nojs/add-handler/test_filter_plugin_base/default/filter', $edit, t('Add and configure @handler', array('@handler' => t('filter criteria'))));
+
+    $edit = [
+      'options[expose_button][checkbox][checkbox]' => TRUE,
+      'options[operator]' => '>',
+      'options[value][value]' => '1990-01-01 00:00:00'
+    ];
+    $this->drupalPostForm(NULL, $edit, t('Expose filter'));
+
+    $edit = ['options[group_button][radios][radios]' => TRUE];
+    $this->drupalPostForm(NULL, $edit, t('Grouped filters'));
+
+    $edit = ['options[group_info][multiple]' => TRUE];
+    $this->drupalPostForm(NULL, $edit, t('Apply and continue'));
+
+    $edit = ['options[value]' => TRUE];
+    $this->drupalPostForm('admin/structure/views/nojs/handler/test_filter_plugin_base/default/filter/status', $edit, t('Apply'));
+    $this->drupalPostForm('admin/structure/views/view/test_filter_plugin_base/edit/default', [], t('Update preview'));
+    $this->assertRaw('<span class="field-content">1</span>');
+    $this->assertRaw('<span class="field-content">3</span>');
+    $this->assertRaw('<span class="field-content">5</span>');
+  }
+
+}
