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

hansva 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 f46bf7972f Issue #5714 (Crash during start of HOP GUI) (#6179)
f46bf7972f is described below

commit f46bf7972f0ce4487e969d3eea6e5ec00c9d4e94
Author: Matt Casters <[email protected]>
AuthorDate: Thu Dec 18 06:41:25 2025 +0100

    Issue #5714 (Crash during start of HOP GUI) (#6179)
    
    Co-authored-by: Matt Casters <[email protected]>
---
 .../apache/hop/ui/hopgui/delegates/HopGuiAuditDelegate.java   | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git 
a/ui/src/main/java/org/apache/hop/ui/hopgui/delegates/HopGuiAuditDelegate.java 
b/ui/src/main/java/org/apache/hop/ui/hopgui/delegates/HopGuiAuditDelegate.java
index 0a52cf12c0..9179ca8dc9 100644
--- 
a/ui/src/main/java/org/apache/hop/ui/hopgui/delegates/HopGuiAuditDelegate.java
+++ 
b/ui/src/main/java/org/apache/hop/ui/hopgui/delegates/HopGuiAuditDelegate.java
@@ -26,6 +26,7 @@ import org.apache.hop.history.AuditList;
 import org.apache.hop.history.AuditManager;
 import org.apache.hop.history.AuditState;
 import org.apache.hop.history.AuditStateMap;
+import org.apache.hop.metadata.api.HopMetadata;
 import org.apache.hop.metadata.api.IHopMetadata;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.metadata.api.IHopMetadataSerializer;
@@ -144,6 +145,16 @@ public class HopGuiAuditDelegate {
       List<Class<IHopMetadata>> metadataClasses = 
metadataProvider.getMetadataClasses();
       for (Class<IHopMetadata> metadataClass : metadataClasses) {
         if (metadataClass.getName().equals(className)) {
+          // See if the object is already open.
+          // In rare cases we see doubles being saved in the audit logs.
+          //
+          String key = metadataClass.getAnnotation(HopMetadata.class).key();
+          MetadataEditor<?> existingEditor = perspective.findEditor(key, name);
+          if (existingEditor != null) {
+            // We can skip this object, it's already loaded.
+            continue;
+          }
+
           // Get the serializer and open it up
           //
           IHopMetadataSerializer<IHopMetadata> serializer =

Reply via email to