diff --git a/data-discovery/src/main/java/search/DbPSearch.java b/data-discovery/src/main/java/search/DbPSearch.java index 87aa285ea04eab5a231e97a53a3563e7e0f2e42b..3fdea6fe821db3080b26c1cf46704eb5eeade2c2 100644 --- a/data-discovery/src/main/java/search/DbPSearch.java +++ b/data-discovery/src/main/java/search/DbPSearch.java @@ -182,55 +182,55 @@ public class DbPSearch { FormatResponseFilter.ObsCore obsCore = new FormatResponseFilter.ObsCore(); - obsCore.dataproduct_type = res.getString("dataproduct_type"); - obsCore.calib_level = res.getInt("calib_level"); - obsCore.obs_collection = res.getString("obs_collection"); - obsCore.obs_title = res.getString("obs_title"); - obsCore.obs_id = res.getString("obs_id"); - obsCore.obs_publisher_did = res.getString("obs_publisher_did"); - - obsCore.bib_reference = res.getString("bib_reference"); - obsCore.data_rights = res.getString("data_rights"); - - obsCore.access_url = res.getString("access_url"); - obsCore.access_format = res.getString("access_format"); - obsCore.access_estsize = res.getLong("access_estsize"); - - obsCore.target_name = res.getString("target_name"); - - obsCore.s_ra = res.getDouble("s_ra"); - obsCore.s_dec = res.getDouble("s_dec"); - obsCore.s_fov = res.getDouble("s_fov"); - obsCore.s_region = res.getString("s_region"); - obsCore.s_region_galactic = res.getString("s_region_galactic"); - obsCore.s_xel1 = res.getLong("s_xel1"); - obsCore.s_xel2 = res.getLong("s_xel2"); - obsCore.s_resolution = res.getDouble("s_resolution"); - - obsCore.t_min = res.getDouble("t_min"); - obsCore.t_max = res.getDouble("t_max"); - obsCore.t_exptime = res.getDouble("t_exptime"); - obsCore.t_resolution = res.getDouble("t_resolution"); - obsCore.t_xel = res.getLong("t_xel"); - - obsCore.vel_min = res.getDouble("vel_min"); //boolean em_min_valid = !res.wasNull(); - obsCore.vel_max = res.getDouble("vel_max"); //boolean em_max_valid = !res.wasNull(); - - obsCore.em_min = res.getDouble("em_min"); boolean em_min_valid = !res.wasNull(); - obsCore.em_max = res.getDouble("em_max"); boolean em_max_valid = !res.wasNull(); + obsCore.dataproduct_type = this.getString(res,"dataproduct_type"); + obsCore.calib_level = this.getInt(res,"calib_level"); + obsCore.obs_collection = this.getString(res,"obs_collection"); + obsCore.obs_title = this.getString(res,"obs_title"); + obsCore.obs_id = this.getString(res,"obs_id"); + obsCore.obs_publisher_did = this.getString(res,"obs_publisher_did"); + + obsCore.bib_reference = this.getString(res,"bib_reference"); + obsCore.data_rights = this.getString(res,"data_rights"); + + obsCore.access_url = this.getString(res,"access_url"); + obsCore.access_format = this.getString(res,"access_format"); + obsCore.access_estsize = this.getLong(res,"access_estsize"); + + obsCore.target_name = this.getString(res,"target_name"); + + obsCore.s_ra = this.getDouble(res,"s_ra"); + obsCore.s_dec = this.getDouble(res,"s_dec"); + obsCore.s_fov = this.getDouble(res,"s_fov"); + obsCore.s_region = this.getString(res,"s_region"); + obsCore.s_region_galactic = this.getString(res,"s_region_galactic"); + obsCore.s_xel1 = this.getLong(res,"s_xel1"); + obsCore.s_xel2 = this.getLong(res,"s_xel2"); + obsCore.s_resolution = this.getDouble(res,"s_resolution"); + + obsCore.t_min = this.getDouble(res,"t_min"); + obsCore.t_max = this.getDouble(res,"t_max"); + obsCore.t_exptime = this.getDouble(res,"t_exptime"); + obsCore.t_resolution = this.getDouble(res,"t_resolution"); + obsCore.t_xel = this.getLong(res,"t_xel"); + + obsCore.vel_min = this.getDouble(res,"vel_min"); //boolean em_min_valid = !res.wasNull(); + obsCore.vel_max = this.getDouble(res,"vel_max"); //boolean em_max_valid = !res.wasNull(); + + obsCore.em_min = this.getDouble(res,"em_min"); boolean em_min_valid = !res.wasNull(); + obsCore.em_max = this.getDouble(res,"em_max"); boolean em_max_valid = !res.wasNull(); obsCore.em_valid = em_min_valid && em_max_valid;; - obsCore.em_res_power = res.getDouble("em_res_power"); - obsCore.em_xel = res.getLong("em_xel"); + obsCore.em_res_power = this.getDouble(res,"em_res_power"); + obsCore.em_xel = this.getLong(res,"em_xel"); - obsCore.o_ucd = res.getString("o_ucd"); + obsCore.o_ucd = this.getString(res,"o_ucd"); - obsCore.pol_states = res.getString("pol_states"); - obsCore.pol_xel = res.getLong("pol_xel"); + obsCore.pol_states = this.getString(res,"pol_states"); + obsCore.pol_xel = this.getLong(res ,"pol_xel"); - obsCore.facility_name = res.getString("facility_name"); - obsCore.instrument_name = res.getString("instrument_name"); + obsCore.facility_name = this.getString(res,"facility_name"); + obsCore.instrument_name = this.getString(res,"instrument_name"); - obsCore.vertices_str = res.getString("polygon_region_galactic"); + obsCore.vertices_str = this.getString(res,"polygon_region_galactic"); obsCore.inputInsideDb = res.getBoolean("inputInsideDb"); obsCore.dbInsideInput = res.getBoolean("dbInsideInput"); @@ -250,6 +250,65 @@ public class DbPSearch return cubes; } + /* conversions tolerate missing columns */ + + private Integer getInt(ResultSet res, String colLabel) + { + try + { + Integer value = res.getInt(colLabel); + return (res.wasNull() ? null : value); + } + catch(SQLException se) + { + logSqlExInfo(se); + return null; + } + } + + private Long getLong(ResultSet res, String colLabel) + { + try + { + Long value = res.getLong(colLabel); + return (res.wasNull() ? null : value); + } + catch(SQLException se) + { + logSqlExInfo(se); + return null; + } + } + + private Double getDouble(ResultSet res, String colLabel) + { + try + { + Double value = res.getDouble(colLabel); + return (res.wasNull() ? null : value); + } + catch(SQLException se) + { + logSqlExInfo(se); + return null; + } + } + + private String getString(ResultSet res, String colLabel) + { + try + { + String value = res.getString(colLabel); + return (res.wasNull() ? null : value); + } + catch(SQLException se) + { + logSqlExInfo(se); + return null; + } + } + + private String toPgSphereSqlTypeString(Pos pos) { @@ -338,7 +397,7 @@ public class DbPSearch { LOGGER.fine("SQLState : " + se.getSQLState()); LOGGER.fine("ErrorCode: " + se.getErrorCode()); - LOGGER.fine("Message : " + se.getMessage()); + LOGGER.warning("Message : " + se.getMessage()); Throwable t = se.getCause(); while(t != null) { LOGGER.fine("Cause: " + t); diff --git a/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java b/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java index fea98452390ab391c6d3d684292f16871281da3c..3d46d175f55d867c0e2348284f3db9450ed5f7c2 100644 --- a/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java +++ b/data-discovery/src/main/java/webapi/formatfilter/ObscoreExt.java @@ -63,8 +63,8 @@ class ObscoreExt { return new Object[] { - dataset.obsCore.dataproduct_type,//dataset.dataType, - Integer.valueOf( dataset.obsCore.calib_level ), + dataset.obsCore.dataproduct_type, + dataset.obsCore.calib_level, dataset.obsCore.obs_collection, dataset.obsCore.obs_title, dataset.obsCore.obs_id, @@ -72,31 +72,36 @@ class ObscoreExt dataset.obsCore.bib_reference, dataset.obsCore.data_rights, - dataset.obsCore.access_url,//dataset.access.accessCutoutUrl, + dataset.obsCore.access_url, dataset.obsCore.access_format, - Long.valueOf( dataset.obsCore.access_estsize ), + dataset.obsCore.access_estsize, dataset.obsCore.target_name, - Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec), - Double.valueOf(dataset.obsCore.s_fov), + dataset.obsCore.s_ra, + dataset.obsCore.s_dec, + dataset.obsCore.s_fov, dataset.obsCore.s_region, - Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ), - Double.valueOf(dataset.obsCore.s_resolution), + dataset.obsCore.s_xel1, + dataset.obsCore.s_xel2, + dataset.obsCore.s_resolution, - Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max), - Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution), - Long.valueOf( dataset.obsCore.t_xel ), + dataset.obsCore.t_min, + dataset.obsCore.t_max, + dataset.obsCore.t_exptime, + dataset.obsCore.t_resolution, + dataset.obsCore.t_xel, - Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max), - Double.valueOf(dataset.obsCore.em_res_power), - Long.valueOf( dataset.obsCore.em_xel ), + dataset.obsCore.em_min, + dataset.obsCore.em_max, + dataset.obsCore.em_res_power, + dataset.obsCore.em_xel, dataset.obsCore.o_ucd, dataset.obsCore.pol_states, - Long.valueOf( dataset.obsCore.pol_xel ), + dataset.obsCore.pol_xel, dataset.obsCore.facility_name, dataset.obsCore.instrument_name, @@ -121,15 +126,14 @@ class ObscoreExt { return new Object[] { - Integer.valueOf( dataset.overlapCode ), - Integer.valueOf( dataset.overlapCodeSky ), - Integer.valueOf( dataset.overlapCodeVel ), + dataset.overlapCode, + dataset.overlapCodeSky, + dataset.overlapCodeVel, dataset.obsCore.s_region_galactic, - dataset.obsCore.vel_min == null ? null : Double.valueOf(dataset.obsCore.vel_min), - dataset.obsCore.vel_min == null ? null : Double.valueOf(dataset.obsCore.vel_max), - + dataset.obsCore.vel_min, + dataset.obsCore.vel_max, }; }