diff --git a/pom.xml b/pom.xml index be4fa8e..3549538 100644 --- a/pom.xml +++ b/pom.xml @@ -58,13 +58,13 @@ org.gcube.contentmanagement storage-manager-wrapper - [2.6.1-SNAPSHOT, 3.0.0-SNAPSHOT) + [3.0.0-SNAPSHOT, 4.0.0-SNAPSHOT) org.gcube.contentmanagement storage-manager-core - [2.0.0,3.0.0-SNAPSHOT) + [3.0.0-SNAPSHOT,4.0.0-SNAPSHOT) slf4j-nop diff --git a/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java b/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java index cac6917..bdb8832 100644 --- a/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java +++ b/src/main/java/org/gcube/datatransfer/resolver/services/StorageIDResolver.java @@ -340,14 +340,20 @@ public class StorageIDResolver { * @return the storage client instance */ protected static IClient getStorageClientInstance(MemoryType memory) { - if ((!Objects.isNull(storageManagerClient)) && (storageManagerClient.getGcubeMemoryType().equals(memory))) + if ((!Objects.isNull(storageManagerClient)) && (storageManagerClient.getGcubeMemoryType().toString() == memory.toString())) { + LOG.debug("reusing the same storage-client object"); return storageManagerClient; - else { + }else { if(!Objects.isNull(storageManagerClient)) { - LOG.debug("going to close an old storage-client instance"); - storageManagerClient.forceClose(); + LOG.debug("going to close an old storage-client instance on "+storageManagerClient.getGcubeMemoryType()); + try { + storageManagerClient.forceClose(); + LOG.debug("storage-client closed"); + }catch(Exception e) { + LOG.warn("Some problem occurred during the close operation:"+e.getMessage()+" Going to open another connection"); + } } - LOG.debug("initializing a new storage-client instance"); + LOG.debug("initializing a new storage-client instance on "+memory); storageManagerClient=new StorageClient(StorageIDResolver.class.getName(), StorageIDResolver.class.getSimpleName(), STORAGEID_RESOLVER, STORAGE_ACCESS_TYPE, memory, STORAGE_BACKEND_TYPE).getClient(); return storageManagerClient; }