From 244ca8f2e6442237f6b21ea81cae89ad9ead3e43 Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Sat, 18 May 2024 10:01:55 +0200 Subject: [PATCH] mcutout: fixes bug in VlkbCli (subsurveys was not initilized) --- .../servlet/src/main/java/common/Subsurvey.java | 5 +++-- .../servlet/src/main/java/ops/VlkbCli.java | 10 +++++----- .../src/main/java/webapi/ServletCutout.java | 8 ++++++-- .../servlet/src/main/java/webapi/UWSMCutout.java | 4 +++- .../src/main/java/webapi/UWSMCutoutWork.java | 16 ++++++++++------ 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/data-access/servlet/src/main/java/common/Subsurvey.java b/data-access/servlet/src/main/java/common/Subsurvey.java index 38c8379..d5dfe48 100644 --- a/data-access/servlet/src/main/java/common/Subsurvey.java +++ b/data-access/servlet/src/main/java/common/Subsurvey.java @@ -109,14 +109,15 @@ class Subsurvey public static Subsurvey[] loadSubsurveys(String csvFilename) { - LOGGER.info("loadSubsurvey from: " + csvFilename); + LOGGER.info("trace"); /* avoid access files-system if csv-filename not configured */ if( (csvFilename == null) || ( (csvFilename != null) && (csvFilename.length() < 1) ) ) { - LOGGER.warning("csvFilename is null, metadata not loaded"); + LOGGER.warning("csvFilename is empty, metadata not loaded"); return null; } + LOGGER.info("load from: " + csvFilename); try { diff --git a/data-access/servlet/src/main/java/ops/VlkbCli.java b/data-access/servlet/src/main/java/ops/VlkbCli.java index 9b01482..f49b229 100644 --- a/data-access/servlet/src/main/java/ops/VlkbCli.java +++ b/data-access/servlet/src/main/java/ops/VlkbCli.java @@ -180,7 +180,7 @@ class VlkbCli implements Vlkb private CutResult doFileById(String id, Pos pos, Band band, Time time, Pol pol, String pixels, - boolean countNullValues, Subsurvey[] subsurveys) + boolean countNullValues/*, Subsurvey[] subsurveys*/) throws IOException, InterruptedException { LOGGER.info("trace"); @@ -194,7 +194,7 @@ class VlkbCli implements Vlkb if(subsurveyId != null) { - extraCards = Subsurvey.subsurveysFindCards(subsurveys, subsurveyId); + extraCards = Subsurvey.subsurveysFindCards(this.subsurveys, subsurveyId); } else { @@ -262,7 +262,7 @@ class VlkbCli implements Vlkb { MCutResult.Cut cut = doFileByIdWithErr(cutArgs.id, cutArgs.pos, cutArgs.band, cutArgs.time, cutArgs.pol, cutArgs.pixels, - cutArgs.countNullValues, null);//cutArgs.extraCards); + cutArgs.countNullValues);//, null);//cutArgs.extraCards); cut.index = ix++; @@ -334,7 +334,7 @@ class VlkbCli implements Vlkb private MCutResult.Cut doFileByIdWithErr(String id, Pos pos, Band band, Time time, Pol pol, String pixels, - boolean countNullValues, Subsurvey[] subsurveys) + boolean countNullValues/*, Subsurvey[] subsurveys*/) { LOGGER.info("trace"); @@ -345,7 +345,7 @@ class VlkbCli implements Vlkb { CutResult cutResult = doFileById(id, pos, band, time, pol, pixels, - countNullValues, subsurveys); + countNullValues/*, subsurveys*/); cut.content = cutResult.fileName; cut.contentType = MCutResult.Cut.ContentType.FILENAME; diff --git a/data-access/servlet/src/main/java/webapi/ServletCutout.java b/data-access/servlet/src/main/java/webapi/ServletCutout.java index 7dc4964..19e58b5 100644 --- a/data-access/servlet/src/main/java/webapi/ServletCutout.java +++ b/data-access/servlet/src/main/java/webapi/ServletCutout.java @@ -142,8 +142,12 @@ public class ServletCutout extends HttpServlet FitsCard[] extraCards = null; - final Resolver resolver = (resolveFromId ? new ResolverFromId(subsurveys): new ResolverByObsCore(settings.dbConn, subsurveys)); - final Vlkb vlkb = (useEngineOverCli ? new VlkbCli(settings) : new VlkbAmqp(settings)); + final Resolver resolver = (resolveFromId ? + new ResolverFromId(subsurveys) + : new ResolverByObsCore(settings.dbConn, subsurveys)); + final Vlkb vlkb = (useEngineOverCli ? + new VlkbCli(settings, subsurveys) + : new VlkbAmqp(settings, subsurveys)); resolver.resolve(id); diff --git a/data-access/servlet/src/main/java/webapi/UWSMCutout.java b/data-access/servlet/src/main/java/webapi/UWSMCutout.java index b4565c0..4330d61 100644 --- a/data-access/servlet/src/main/java/webapi/UWSMCutout.java +++ b/data-access/servlet/src/main/java/webapi/UWSMCutout.java @@ -20,7 +20,9 @@ import uws.service.UWSUrl; public class UWSMCutout extends UWSServlet { private static final long serialVersionUID = 1L; - public static final Settings settings = Settings.getInstance(); + protected static final Settings settings = Settings.getInstance(); + protected static final Subsurvey[] subsurveys = Subsurvey.loadSubsurveys( + settings.fitsPaths.surveysMetadataAbsPathname()); /* REQUIRED * Initialize your UWS. At least, you should create one jobs list. */ diff --git a/data-access/servlet/src/main/java/webapi/UWSMCutoutWork.java b/data-access/servlet/src/main/java/webapi/UWSMCutoutWork.java index 4fcfeeb..3d59890 100644 --- a/data-access/servlet/src/main/java/webapi/UWSMCutoutWork.java +++ b/data-access/servlet/src/main/java/webapi/UWSMCutoutWork.java @@ -37,17 +37,21 @@ public class UWSMCutoutWork extends JobThread { final String RESPONSE_ENCODING = "utf-8"; - private Settings settings = UWSMCutout.settings; + private Settings settings = UWSMCutout.settings; + private Subsurvey[] subsurveys = UWSMCutout.subsurveys; - protected Vlkb vlkb = ( settings.amqpConn.isHostnameEmpty() ? new VlkbCli(settings): new VlkbAmqp(settings) ); + protected Vlkb vlkb = (settings.amqpConn.isHostnameEmpty() ? + new VlkbCli(settings, subsurveys) + : new VlkbAmqp(settings, subsurveys)); /* NOTE needed if cutouts dir served by vlkb-datasets */ private String webappRootRequestUrl = null; - public UWSMCutoutWork(UWSJob j) throws UWSException{ + public UWSMCutoutWork(UWSJob j) throws UWSException + { super(j); - UWSUrl url = j.getUrl(); - webappRootRequestUrl = url.getUrlHeader(); + UWSUrl url = j.getUrl(); + webappRootRequestUrl = url.getUrlHeader(); } @@ -117,7 +121,7 @@ public class UWSMCutoutWork extends JobThread } } - private String convertLocalPathnameToRemoteUrl(String localPathname, + private String convertLocalPathnameToRemoteUrl(String localPathname, String FITScutpath, String FITSRemoteUrlCutouts) { //LOGGER.info("trace " + localPathname); -- GitLab