From c573360e2abf6e8901f0df55adb1f51e11db3d6f Mon Sep 17 00:00:00 2001 From: roberto cirillo Date: Tue, 12 May 2020 15:23:26 +0200 Subject: [PATCH] added shub retry on InputManager class, getLocalFile method --- changelog.md | 16 ++++++++++++++++ pom.xml | 2 +- .../synchserver/mapping/InputsManager.java | 16 ++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 changelog.md diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..41e1155 --- /dev/null +++ b/changelog.md @@ -0,0 +1,16 @@ +# Changelog + +All notable changes to this project will be documented in this file. +this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## [Unreleased] + +## [1.6.0] - 2020-05-12 + +### Added + +- added storagehub retry in InputsManager class, getLocalFile method + +### Changed + - \ No newline at end of file diff --git a/pom.xml b/pom.xml index b1fa05b..d93d93d 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ org.gcube.dataanalysis dataminer - 1.5.9-SNAPSHOT + 1.6.0-SNAPSHOT dataminer An e-Infrastructure service providing state-of-the art DataMining algorithms and ecological modelling approaches under the Web Processing Service (WPS) standard. diff --git a/src/main/java/org/gcube/dataanalysis/wps/statisticalmanager/synchserver/mapping/InputsManager.java b/src/main/java/org/gcube/dataanalysis/wps/statisticalmanager/synchserver/mapping/InputsManager.java index 074b72c..cc84cb5 100644 --- a/src/main/java/org/gcube/dataanalysis/wps/statisticalmanager/synchserver/mapping/InputsManager.java +++ b/src/main/java/org/gcube/dataanalysis/wps/statisticalmanager/synchserver/mapping/InputsManager.java @@ -5,6 +5,7 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; +import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; @@ -43,6 +44,8 @@ public class InputsManager { private static final Logger LOGGER = LoggerFactory.getLogger(InputsManager.class); + private static final long SHUB_RETRY_MILLIS = 2000; + LinkedHashMap inputs; List generatedTables; List generatedFiles; @@ -242,8 +245,17 @@ public class InputsManager { InputStream is = null; HttpURLConnection urlConnection = null; URL url = new URL(subfilelink); - urlConnection = (HttpURLConnection) url.openConnection(); - is = new BufferedInputStream(urlConnection.getInputStream()); + try { + urlConnection = (HttpURLConnection) url.openConnection(); + is = new BufferedInputStream(urlConnection.getInputStream()); + }catch(IOException e) { + LOGGER.warn("download from storagehub failed. Retry ongoing..."); + LOGGER.debug("waiting "+SHUB_RETRY_MILLIS+" millis "); + Thread.sleep(SHUB_RETRY_MILLIS); + urlConnection = (HttpURLConnection) url.openConnection(); + is = new BufferedInputStream(urlConnection.getInputStream()); + LOGGER.debug(" retry success "); + } // retrieve payload: for test purpose only String fileNameTemp = inputNameFromHttpHeader(subfilelink);