From a9bbd362da5d2bd243d8616897c3408d1db16f4b Mon Sep 17 00:00:00 2001
From: Cristian Partica <cpartica@magento.com>
Date: Wed, 28 Dec 2016 17:33:02 -0600
Subject: [PATCH] MAGETWO-58924: SQL error wait timeout error when saving
 categories

- reduce dependency coupling count
---
 .../CurrentUrlRewritesRegenerator.php         | 26 +++++++------------
 1 file changed, 10 insertions(+), 16 deletions(-)

diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Category/CurrentUrlRewritesRegenerator.php b/app/code/Magento/CatalogUrlRewrite/Model/Category/CurrentUrlRewritesRegenerator.php
index 9263f48a22e..ce1bae7df7f 100644
--- a/app/code/Magento/CatalogUrlRewrite/Model/Category/CurrentUrlRewritesRegenerator.php
+++ b/app/code/Magento/CatalogUrlRewrite/Model/Category/CurrentUrlRewritesRegenerator.php
@@ -5,33 +5,27 @@
  */
 namespace Magento\CatalogUrlRewrite\Model\Category;
 
-use Magento\Catalog\Model\Category;
 use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator;
 use Magento\UrlRewrite\Model\OptionProvider;
-use Magento\UrlRewrite\Model\UrlFinderInterface;
-use Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory;
-use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
-use Magento\CatalogUrlRewrite\Model\Map\UrlRewriteMap;
-use Magento\UrlRewrite\Model\UrlRewritesSetFactory;
 
 class CurrentUrlRewritesRegenerator
 {
     /** @var \Magento\CatalogUrlRewrite\Model\CategoryUrlPathGenerator */
     protected $categoryUrlPathGenerator;
 
-    /** @var UrlRewriteFactory */
+    /** @var \Magento\UrlRewrite\Service\V1\Data\UrlRewriteFactory */
     protected $urlRewriteFactory;
 
-    /** @var UrlRewrite */
+    /** @var \Magento\UrlRewrite\Service\V1\Data\UrlRewrite */
     private $urlRewritePlaceholder;
 
     /**
-     * @var UrlFinderInterface
+     * @var \Magento\UrlRewrite\Model\UrlFinderInterface
      * @deprecated
      */
     protected $urlFinder;
 
-    /** @var UrlRewriteMap */
+    /** @var \Magento\CatalogUrlRewrite\Model\Map\UrlRewriteMap */
     private $urlRewriteMap;
 
     /** @var \Magento\UrlRewrite\Model\UrlRewritesSet */
@@ -56,7 +50,7 @@ class CurrentUrlRewritesRegenerator
         $this->urlRewritePlaceholder = $urlRewriteFactory->create();
         $this->urlFinder = $urlFinder;
         $this->urlRewriteMap = $urlRewriteMap ?: \Magento\Framework\App\ObjectManager::getInstance()
-            ->get(UrlRewriteMap::class);
+            ->get(\Magento\CatalogUrlRewrite\Model\Map\UrlRewriteMap::class);
         $urlRewritesSetFactory = $urlRewritesSetFactory ?: \Magento\Framework\App\ObjectManager::getInstance()
             ->get(UrlRewritesSetFactory::class);
         $this->urlRewritesSetPlaceHolder = $urlRewritesSetFactory->create();
@@ -70,7 +64,7 @@ class CurrentUrlRewritesRegenerator
      * @param int|null $rootCategoryId
      * @return \Magento\UrlRewrite\Service\V1\Data\UrlRewrite[]
      */
-    public function generate($storeId, Category $category, $rootCategoryId = null)
+    public function generate($storeId, \Magento\Catalog\Model\Category $category, $rootCategoryId = null)
     {
         $urlRewritesSet = clone $this->urlRewritesSetPlaceHolder;
         $currentUrlRewrites = $this->urlRewriteMap->getByIdentifiers(
@@ -96,10 +90,10 @@ class CurrentUrlRewritesRegenerator
     /**
      * @param \Magento\UrlRewrite\Service\V1\Data\UrlRewrite $url
      * @param int $storeId
-     * @param Category $category
+     * @param \Magento\Catalog\Model\Category $category
      * @return \Magento\UrlRewrite\Service\V1\Data\UrlRewrite[]
      */
-    protected function generateForAutogenerated($url, $storeId, Category $category)
+    protected function generateForAutogenerated($url, $storeId, \Magento\Catalog\Model\Category $category)
     {
         if ($category->getData('save_rewrites_history')) {
             $targetPath = $this->categoryUrlPathGenerator->getUrlPathWithSuffix($category, $storeId);
@@ -121,10 +115,10 @@ class CurrentUrlRewritesRegenerator
     /**
      * @param \Magento\UrlRewrite\Service\V1\Data\UrlRewrite $url
      * @param int $storeId
-     * @param Category $category
+     * @param \Magento\Catalog\Model\Category $category
      * @return \Magento\UrlRewrite\Service\V1\Data\UrlRewrite[]
      */
-    protected function generateForCustom($url, $storeId, Category $category)
+    protected function generateForCustom($url, $storeId, \Magento\Catalog\Model\Category $category)
     {
         $targetPath = !$url->getRedirectType()
             ? $url->getTargetPath()
-- 
GitLab