diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java index 11b7043..2c662ab 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherFisheryService.java @@ -239,7 +239,14 @@ public class GrsfPublisherFisheryService { // manage time series logger.info("Launching thread for time series handling"); - new ManageTimeSeriesThread(record, id, username, catalogue, ScopeProvider.instance.get()).start(); + ManageTimeSeriesThread threadFiles = new ManageTimeSeriesThread(record, futureName, username, catalogue, ScopeProvider.instance.get()); + + // wait this one to finish + threadFiles.start(); + + logger.info("Waiting time series thread to die.."); + threadFiles.join(); + logger.debug("Ok, it died"); if(!groups.isEmpty()){ logger.info("Launching thread for association to the list of groups " + groups); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java index 728f9ba..f79ef55 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/services/GrsfPublisherStockService.java @@ -228,7 +228,14 @@ public class GrsfPublisherStockService { // manage time series logger.info("Launching thread for time series handling"); - new ManageTimeSeriesThread(record, id, username, catalogue, ScopeProvider.instance.get()).start(); + ManageTimeSeriesThread threadFiles = new ManageTimeSeriesThread(record, futureName, username, catalogue, ScopeProvider.instance.get()); + + // wait this one to finish + threadFiles.start(); + + logger.info("Waiting time series thread to die.."); + threadFiles.join(); + logger.debug("Ok, it died"); if(!groups.isEmpty()){ logger.info("Launching thread for association to the list of groups " + groups); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java index 8a2ba5b..c79ecd5 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/HelperMethods.java @@ -437,7 +437,7 @@ public abstract class HelperMethods { * @throws IllegalArgumentException * @throws IllegalAccessException */ - public static void manageTimeSeries(Common record, String packageId, String username, DataCatalogue catalogue, String context) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException{ + public static void manageTimeSeries(Common record, String packageName, String username, DataCatalogue catalogue, String context) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IntrospectionException{ if(record == null) throw new IllegalArgumentException("The given record is null!!"); @@ -466,7 +466,7 @@ public abstract class HelperMethods { // upload this file on ckan eu.trentorise.opendata.jackan.model.CkanResource res = catalogue.uploadResourceFile( csvFile, - packageId, + packageName, catalogue.getApiKeyFromUsername(username), resourceToAttachName, customAnnotation.key() + " time series for this product"); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java index b0de837..a8700c3 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/AssociationToGroupThread.java @@ -46,7 +46,7 @@ public class AssociationToGroupThread extends Thread { // retrieve the role to be assigned according the one the user has into the organization of the dataset RolesCkanGroupOrOrg role = RolesCkanGroupOrOrg.valueOf(catalogue.getRoleOfUserInOrganization(username, organizationId, catalogue.getApiKeyFromUsername(username)).toUpperCase()); - + if(!role.equals(RolesCkanGroupOrOrg.ADMIN)) role = RolesCkanGroupOrOrg.MEMBER; // decrease the role to member if it is not an admin @@ -56,16 +56,12 @@ public class AssociationToGroupThread extends Thread { boolean assigned = catalogue.checkRoleIntoGroup(username, groupTitle, role); if(!assigned){ - logger.warn("The user " + username + " has not enough privileges to associate the dataset into group OR the group doesn't exist" + groupTitle); continue; - } else{ - boolean putIntoGroup = catalogue.assignDatasetToGroup(groupTitle, datasetId, userApiKey); logger.info("Was product put into group " + groupTitle + "? " + putIntoGroup); - } } logger.info("The Association Group thread ended correctly"); diff --git a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java index 329c14e..6e95388 100644 --- a/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java +++ b/src/main/java/org/gcube/data_catalogue/grsf_publish_ws/utils/threads/ManageTimeSeriesThread.java @@ -19,7 +19,7 @@ public class ManageTimeSeriesThread extends Thread{ private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ManageTimeSeriesThread.class); private Common record; - private String packageId; + private String packageName; private String username; private DataCatalogue catalogue; private String context; @@ -31,11 +31,11 @@ public class ManageTimeSeriesThread extends Thread{ * @param catalogue * @param context */ - public ManageTimeSeriesThread(Common record, String packageId, + public ManageTimeSeriesThread(Common record, String packageName, String username, DataCatalogue catalogue, String context) { super(); this.record = record; - this.packageId = packageId; + this.packageName = packageName; this.username = username; this.catalogue = catalogue; this.context = context; @@ -47,7 +47,7 @@ public class ManageTimeSeriesThread extends Thread{ public void run() { logger.info("Time series manager thread started"); try { - HelperMethods.manageTimeSeries(record, packageId, username, catalogue, context); + HelperMethods.manageTimeSeries(record, packageName, username, catalogue, context); logger.info("The time series manager thread ended correctly"); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | IntrospectionException e) {