diff --git a/data-access/engine/src/vlkb/src/imcopy.cpp b/data-access/engine/src/vlkb/src/imcopy.cpp index 51ce0157300e60d94cb70c6beee287d8dbd32253..37f3fdbc38c92b5b882fea1777b00f8ef359636f 100644 --- a/data-access/engine/src/vlkb/src/imcopy.cpp +++ b/data-access/engine/src/vlkb/src/imcopy.cpp @@ -31,9 +31,7 @@ int stream_cutout(string pathname, int extnum, string region) { string pixfilter{ to_cfitsio_format(bnds) }; - int rc = imcopy(pathname, extnum, pixfilter, "dummy"); - if(rc) - std::cout << "rc = " << rc << std::endl; + imcopy(pathname, extnum, pixfilter, "dummy"); return EXIT_SUCCESS; } @@ -61,7 +59,7 @@ int fits_copy_image_section2( -int imcopy(std::string filename, int extnum, std::string pixfilter, std::string temp_root) +void imcopy(std::string filename, int extnum, std::string pixfilter, std::string temp_root) { LOG_trace(__func__); @@ -97,7 +95,7 @@ int imcopy(std::string filename, int extnum, std::string pixfilter, std::string throw runtime_error("fits_open_file to stream failed: " + errmsg); } - int rc = fits_copy_image_section2(fptr, newfptr, expr, &status); + fits_copy_image_section2(fptr, newfptr, expr, &status); if (status) { string errmsg{fitsfiles::cfitsio_errmsg(__FILE__, __LINE__, status)}; @@ -118,8 +116,6 @@ int imcopy(std::string filename, int extnum, std::string pixfilter, std::string string errmsg{fitsfiles::cfitsio_errmsg(__FILE__, __LINE__, status)}; throw runtime_error("fits_close_file cut failed: " + errmsg); } - - return rc; } diff --git a/data-access/engine/src/vlkb/src/imcopy.hpp b/data-access/engine/src/vlkb/src/imcopy.hpp index f58eadb45cc5e787de3ed589c761f7cc1566a96f..f973ad9e4ad4b695070d0bced42263238c491297 100644 --- a/data-access/engine/src/vlkb/src/imcopy.hpp +++ b/data-access/engine/src/vlkb/src/imcopy.hpp @@ -3,7 +3,7 @@ #include <string> -int imcopy(std::string filename, int extnum, std::string pixfilter, std::string temp_root); +void imcopy(std::string filename, int extnum, std::string pixfilter, std::string temp_root); int stream_cutout(std::string pathname, int extnum, std::string region); #endif diff --git a/data-access/engine/src/vlkb/src/main.cpp b/data-access/engine/src/vlkb/src/main.cpp index ee5d6c210b8f8ea836da544dc17e7cb04cbd595d..af3e0f05f5831c7bd5abc13d62d406a1790d7e88 100644 --- a/data-access/engine/src/vlkb/src/main.cpp +++ b/data-access/engine/src/vlkb/src/main.cpp @@ -189,9 +189,15 @@ int cmd_imcopy(int argc, char * argv[]) int extnum = std::stoi(std::string{argv[2]}); std::string pixfilter{argv[3]}; std::string temp_root = ((argc == 5) ? argv[4] : "/tmp" ); - int rc = imcopy(infilename, extnum, pixfilter, temp_root); - if(rc) - std::cout << "rc = " << rc << std::endl; + try + { + imcopy(infilename, extnum, pixfilter, temp_root); + } + catch(const std::exception & ex) + { + std::cerr << ex.what() << std::endl; + return EXIT_FAILURE; + } return EXIT_SUCCESS; } else diff --git a/data-access/servlet/src/main/java/cutout/CutoutImpl.java b/data-access/servlet/src/main/java/cutout/CutoutImpl.java index 9fc4275b6e5b79305b6ac12cb9a11a506955d43c..f22075e057d339e90f0281a1cb2aa0e5cdd96738 100644 --- a/data-access/servlet/src/main/java/cutout/CutoutImpl.java +++ b/data-access/servlet/src/main/java/cutout/CutoutImpl.java @@ -162,12 +162,14 @@ class CutoutImpl implements Cutout { /* cutout -> outputStream */ + String pixFilterString = pixels_valid ? pixels : boundsString; + String[] cmdCut = new String[6]; cmdCut[0] = "/usr/local/bin/vlkb"; cmdCut[1] = "imcopy"; cmdCut[2] = absPathname; cmdCut[3] = String.valueOf(hdunum-1); - cmdCut[4] = pixels_valid ? pixels : boundsString; + cmdCut[4] = pixFilterString; cmdCut[5] = settings.fitsPaths.cutouts(); if(outputStream == null) @@ -176,6 +178,15 @@ class CutoutImpl implements Cutout ExecCmd execCut = new ExecCmd(); execCut.doRun(outputStream, cmdCut); + LOGGER.info("execCut exitValue: " + execCut.exitValue); + + boolean cut_successful = (execCut.exitValue == 0); + + if(!cut_successful) + { + throw new IllegalArgumentException("cut by pixels not completed for pixels : " + pixFilterString); + } + Instant cutDone = Instant.now(); LOGGER.info("EXECTIME cutDone: " + Duration.between(start, cutDone)); }