From 55905d251d079709511bfb682ceb7015c5f7404f Mon Sep 17 00:00:00 2001 From: Darin Kelkhoff Date: Fri, 13 Jun 2025 11:50:21 -0500 Subject: [PATCH] Better clone methods --- .../security/MultiRecordSecurityLock.java | 2 +- .../metadata/security/RecordSecurityLock.java | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/MultiRecordSecurityLock.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/MultiRecordSecurityLock.java index 04cb945b..c2a3f6aa 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/MultiRecordSecurityLock.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/MultiRecordSecurityLock.java @@ -44,7 +44,7 @@ public class MultiRecordSecurityLock extends RecordSecurityLock implements Clone ** *******************************************************************************/ @Override - protected MultiRecordSecurityLock clone() throws CloneNotSupportedException + public MultiRecordSecurityLock clone() { MultiRecordSecurityLock clone = (MultiRecordSecurityLock) super.clone(); diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/RecordSecurityLock.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/RecordSecurityLock.java index 6cf99e9e..ca5239a8 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/RecordSecurityLock.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/model/metadata/security/RecordSecurityLock.java @@ -57,20 +57,27 @@ public class RecordSecurityLock implements Cloneable ** *******************************************************************************/ @Override - protected RecordSecurityLock clone() throws CloneNotSupportedException + public RecordSecurityLock clone() { - RecordSecurityLock clone = (RecordSecurityLock) super.clone(); - - ///////////////////////// - // deep-clone the list // - ///////////////////////// - if(joinNameChain != null) + try { - clone.joinNameChain = new ArrayList<>(); - clone.joinNameChain.addAll(joinNameChain); - } + RecordSecurityLock clone = (RecordSecurityLock) super.clone(); - return (clone); + ///////////////////////// + // deep-clone the list // + ///////////////////////// + if(joinNameChain != null) + { + clone.joinNameChain = new ArrayList<>(); + clone.joinNameChain.addAll(joinNameChain); + } + + return (clone); + } + catch(CloneNotSupportedException e) + { + throw (new RuntimeException("Could not clone", e)); + } }