commit b732ae2b0cd60b46f584fd54d9d5d819d5f646d1
Author: Harold <harold@ezcompany.nl>
Date:   Thu Nov 27 15:12:12 2014 +0100

    Issue: #2383277

diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php
index 8641fa2..3f641e5 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php
@@ -10,10 +10,7 @@
 use Drupal\Component\Utility\Random;
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\Core\Field\FieldItemBase;
-use Drupal\Core\StringTranslation\TranslationWrapper;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\TypedData\DataDefinition;
 
 /**
  * Defines the 'string' entity field type.
@@ -26,7 +23,7 @@
  *   default_formatter = "string"
  * )
  */
-class StringItem extends FieldItemBase {
+class StringItem extends StringItemBase {
 
   /**
    * {@inheritdoc}
@@ -40,18 +37,6 @@ public static function defaultStorageSettings() {
   /**
    * {@inheritdoc}
    */
-  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
-    // This is called very early by the user entity roles field. Prevent
-    // early t() calls by using the TranslationWrapper.
-    $properties['value'] = DataDefinition::create('string')
-      ->setLabel(new TranslationWrapper('Text value'));
-
-    return $properties;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public static function schema(FieldStorageDefinitionInterface $field_definition) {
     return array(
       'columns' => array(
@@ -90,15 +75,7 @@ public function getConstraints() {
    */
   public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
     $random = new Random();
-    $max = $field_definition->getSetting('max_length');
-
-    if ($max) {
-      $values['value'] = $random->word(mt_rand(1, $max));
-    }
-    else {
-      $values['value'] = $random->paragraphs();
-    }
-
+    $values['value'] = $random->word(mt_rand(1, $field_definition->getSetting('max_length')));
     return $values;
   }
 
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItemBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItemBase.php
new file mode 100644
index 0000000..c1ff41b
--- /dev/null
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItemBase.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldType\StringItemBase.
+ */
+
+namespace Drupal\Core\Field\Plugin\Field\FieldType;
+
+use Drupal\Core\Field\FieldItemBase;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Core\StringTranslation\TranslationWrapper;
+use Drupal\Core\TypedData\DataDefinition;
+
+/**
+ * Base class for string field types.
+ */
+abstract class StringItemBase extends FieldItemBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
+    // This is called very early by the user entity roles field. Prevent
+    // early t() calls by using the TranslationWrapper.
+    $properties['value'] = DataDefinition::create('string')
+      ->setLabel(new TranslationWrapper('Text value'));
+
+    return $properties;
+  }
+
+}
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringLongItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringLongItem.php
index 1a17ede..64f8690 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringLongItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringLongItem.php
@@ -7,8 +7,9 @@
 
 namespace Drupal\Core\Field\Plugin\Field\FieldType;
 
+use Drupal\Component\Utility\Random;
+use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\Core\Form\FormStateInterface;
 
 /**
  * Defines the 'string_long' field type.
@@ -21,16 +22,7 @@
  *   default_formatter = "string",
  * )
  */
-class StringLongItem extends StringItem {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function defaultStorageSettings() {
-    $settings = parent::defaultStorageSettings();
-    unset($settings['max_length']);
-    return $settings;
-  }
+class StringLongItem extends StringItemBase {
 
   /**
    * {@inheritdoc}
@@ -49,10 +41,10 @@ public static function schema(FieldStorageDefinitionInterface $field_definition)
   /**
    * {@inheritdoc}
    */
-  public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
-    $element = parent::storageSettingsForm($form, $form_state, $has_data);
-    unset($element['max_length']);
-    return $element;
+  public static function generateSampleValue(FieldDefinitionInterface $field_definition) {
+    $random = new Random();
+    $values['value'] = $random->paragraphs();
+    return $values;
   }
 
 }
