This is an automated email from the ASF dual-hosted git repository.

bamaer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 768e45d5b5 Fix false circular parent reference when adding a project 
(#8651)
768e45d5b5 is described below

commit 768e45d5b584b627e4d3d7702910c5819e4bb1ed
Author: Lance <[email protected]>
AuthorDate: Tue Sep 29 14:09:54 2026 +0800

    Fix false circular parent reference when adding a project (#8651)
    
    Signed-off-by: leehaut <[email protected]>
---
 .../main/java/org/apache/hop/projects/project/ProjectDialog.java | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/plugins/misc/projects/src/main/java/org/apache/hop/projects/project/ProjectDialog.java
 
b/plugins/misc/projects/src/main/java/org/apache/hop/projects/project/ProjectDialog.java
index febd4820cf..2ab2d37142 100644
--- 
a/plugins/misc/projects/src/main/java/org/apache/hop/projects/project/ProjectDialog.java
+++ 
b/plugins/misc/projects/src/main/java/org/apache/hop/projects/project/ProjectDialog.java
@@ -928,15 +928,20 @@ public class ProjectDialog extends Dialog {
         ProjectConfig parentPrjCfg = 
prjsCfg.findProjectConfig(wParentProject.getText());
         Project parentPrj = parentPrjCfg.loadProject(hopGui.getVariables());
         String grandParentName = parentPrj.getParentProjectName();
-        if (grandParentName != null
+        // Empty means "no parent". A new project also has an empty original 
name, and the
+        // default project stores parentProjectName as "". Comparing those two 
empty strings
+        // would look like a cycle.
+        if (StringUtils.isNotEmpty(grandParentName)
             && (grandParentName.equalsIgnoreCase(projectName)
-                || grandParentName.equalsIgnoreCase(oriProjectName)))
+                || (StringUtils.isNotEmpty(oriProjectName)
+                    && grandParentName.equalsIgnoreCase(oriProjectName)))) {
           throw new HopException(
               CONST_PROJECT
                   + projectName
                   + "' cannot reference '"
                   + wParentProject.getText()
                   + "' as parent project because we are going to create a 
circular reference!");
+        }
       }
 
       if (this.editMode && !oriProjectName.equals(projectName)) {

Reply via email to