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)) {