From ea2267258878e191ce23adf1d9b01635c17bca5e Mon Sep 17 00:00:00 2001 From: Roberto Cirillo Date: Thu, 9 Sep 2021 11:03:44 +0200 Subject: [PATCH] add a little sleep in order to understand if it solve the issue 21980 --- .../backend/operation/SoftCopyOperator.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java index 971c338..f94fecf 100644 --- a/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java +++ b/src/main/java/org/gcube/contentmanagement/blobstorage/transport/backend/operation/SoftCopyOperator.java @@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory; import com.mongodb.BasicDBObject; import com.mongodb.DBCollection; import com.mongodb.DBObject; +import com.mongodb.DuplicateKeyException; import com.mongodb.gridfs.GridFSDBFile; /** @@ -225,8 +226,20 @@ public class SoftCopyOperator extends SoftCopy { document.put("length", sourceObject.getLength()); // set chunkSize inherited from original object document.put("chunkSize", sourceObject.getChunkSize()); - metaCollectionInstance.insert(document); - metaCollectionInstance.save(document); + try { + metaCollectionInstance.insert(document); + metaCollectionInstance.save(document); + }catch (DuplicateKeyException e) { + logger.warn("key already present or not completely removed. Wait few seconds and retry"); + try { + Thread.sleep(2000); + } catch (InterruptedException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + metaCollectionInstance.insert(document); + metaCollectionInstance.save(document); + } return document; }