From 58bcfd2d6a19bfd1e832bf81a403816dbadb38ac Mon Sep 17 00:00:00 2001
From: Thomas Mortagne <thomas.mortagne@gmail.com>
Date: Wed, 1 Aug 2018 19:46:31 +0200
Subject: [PATCH] XCOMMONS-1451: Cross dependencies between extensions cause a
 StackOverflowError in the install plan job

---
 .../xwiki/platform/flavor/internal/job/FlavorSearchJob.java | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/xwiki-platform-core/xwiki-platform-flavor/xwiki-platform-flavor-api/src/main/java/org/xwiki/platform/flavor/internal/job/FlavorSearchJob.java b/xwiki-platform-core/xwiki-platform-flavor/xwiki-platform-flavor-api/src/main/java/org/xwiki/platform/flavor/internal/job/FlavorSearchJob.java
index be6e7083ecb..e4706b1688f 100644
--- a/xwiki-platform-core/xwiki-platform-flavor/xwiki-platform-flavor-api/src/main/java/org/xwiki/platform/flavor/internal/job/FlavorSearchJob.java
+++ b/xwiki-platform-core/xwiki-platform-flavor/xwiki-platform-flavor-api/src/main/java/org/xwiki/platform/flavor/internal/job/FlavorSearchJob.java
@@ -149,8 +149,8 @@ private Extension tryInstallExtension(ExtensionId extensionId, String namespace)
      */
     @Override
     protected void installMandatoryExtensionDependency(ExtensionDependency extensionDependency, String namespace,
-        List<ModifableExtensionPlanNode> parentBranch, Map<String, ExtensionDependency> managedDependencies)
-        throws InstallException, IncompatibleVersionConstraintException, ResolveException
+        List<ModifableExtensionPlanNode> parentBranch, Map<String, ExtensionDependency> managedDependencies,
+        Set<String> parents) throws InstallException, IncompatibleVersionConstraintException, ResolveException
     {
         // Cheating a bit to speed up resolution:
         // Skip it when we already know it's valid
@@ -160,7 +160,7 @@ protected void installMandatoryExtensionDependency(ExtensionDependency extension
             if (this.validatedExtensions.get(extensionDependency) == Boolean.TRUE
                 && this.configuration.getRecomendedVersionConstraint(extensionDependency.getId()) == null) {
                 super.installMandatoryExtensionDependency(extensionDependency, namespace, parentBranch,
-                    managedDependencies);
+                    managedDependencies, parents);
             }
 
             valid = Boolean.TRUE;
-- 
GitLab