From c81861c3e5495437b0d58238f774bf20869a29e3 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Wed, 6 Oct 2021 12:49:58 +0200 Subject: [PATCH] Explicitly close IS --- .../service/engine/mongo/ConcessioniMongoManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java index 8df769a..afcb221 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ConcessioniMongoManager.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.mongodb.client.MongoDatabase; import lombok.Synchronized; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.bson.Document; import org.bson.types.ObjectId; import org.gcube.application.geoportal.common.faults.PathException; @@ -28,6 +29,7 @@ import org.gcube.common.storagehub.model.exceptions.StorageHubException; import org.gcube.data.transfer.library.faults.RemoteServiceException; import java.io.IOException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.sql.SQLException; @@ -433,16 +435,21 @@ public class ConcessioniMongoManager extends MongoManager{ content.setActualContent(new ArrayList()); for(TempFile f : files) { + InputStream is=null; try{ log.debug("Opening temp file {}",f); String fileUrl=storage.getURL(f.getId()); log.debug("Got URL {} from ID {}",fileUrl,f.getId()); - WorkspaceContent wsContent=ws.storeToWS(new FileOptions(f.getFilename(),new URL(fileUrl).openStream(), + is=new URL(fileUrl).openStream(); + WorkspaceContent wsContent=ws.storeToWS(new FileOptions(f.getFilename(),is, "Imported via GeoPortal", sectionParent)); log.debug("Registered "+wsContent+" for "+content); content.getActualContent().add(wsContent); }catch(StorageHubException | IOException e){ throw new StorageException("Unable to store "+f,e); + }finally{ + if(is!=null) + IOUtils.closeQuietly(is); } } content.setMongo_id(asString(new ObjectId()));