diff --git a/data-discovery/src/main/java/vlkb/search/DbPSearch.java b/data-discovery/src/main/java/vlkb/search/DbPSearch.java index e9a54d0c66056dbef80969009fad57d2b64a4c05..183b9bfb030ab63025d5ed24582b5c4d96348f00 100644 --- a/data-discovery/src/main/java/vlkb/search/DbPSearch.java +++ b/data-discovery/src/main/java/vlkb/search/DbPSearch.java @@ -114,199 +114,206 @@ public class DbPSearch LOGGER.info(theQuery); - List<String> pubdidList = new ArrayList<>(); + List<String> pubdidList = new ArrayList<>(); - LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); - try( - Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); - Statement st = conn.createStatement(); - ResultSet res = st.executeQuery(theQuery);) - { - //ResultSet res = doQuery(theQuery); + LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); - while (res.next()) - { - String pubdid_str = res.getString("obs_publisher_did"); - pubdidList.add(pubdid_str); - } + try( + Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); + Statement st = conn.createStatement(); + ResultSet res = st.executeQuery(theQuery);) + { - } - catch (SQLException se) - { - logSqlExInfo(se); - se.printStackTrace(); - } -/* catch (ClassNotFoundException e) - { - LOGGER.info("DB driver "+ DB_DRIVER +" not found: " + e.getMessage()); - e.printStackTrace(); - } -*/ + while (res.next()) + { + String pubdid_str = res.getString("obs_publisher_did"); + pubdidList.add(pubdid_str); + } + + } + catch (SQLException se) + { + logSqlExInfo(se); + se.printStackTrace(); + } - String[] pubdidArr = pubdidList.toArray(new String[0]); + String[] pubdidArr = pubdidList.toArray(new String[0]); - LOGGER.info("pubdidArr[] length: " + pubdidArr.length); + LOGGER.info("pubdidArr[] length: " + pubdidArr.length); - return pubdidArr; + return pubdidArr; } - public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Coord coord, SubsurveyId subsurveyId) + public FormatResponseFilter.ObsCore[] queryOutputData(String[] pubdidArr, Coord coord/*, SubsurveyId subsurveyId*/) { - LOGGER.info(""); - double lon = coord.lon; - double lat = coord.lat; - double radius = coord.radius; - double dlon = coord.dlon; - double dlat = coord.dlat; + LOGGER.info(""); + double lon = coord.lon; + double lat = coord.lat; + double radius = coord.radius; + double dlon = coord.dlon; + double dlat = coord.dlat; - boolean vel_valid = coord.vel_valid; - String vel_type = coord.vel_type; - double vel_low = coord.vel_low; - double vel_up = coord.vel_up; + boolean vel_valid = coord.vel_valid; + String vel_type = coord.vel_type; + double vel_low = coord.vel_low; + double vel_up = coord.vel_up; - String inputRegion = null; + String inputRegion = null; - if(coord.shape.equals("CIRCLE")) - { - inputRegion = "scircle '<(" + Double.toString(lon) + "d," + Double.toString(lat) + "d)," - + Double.toString(radius) + "d>'"; - } - else if( coord.shape.equals("RECT") ) - { - /*Vert vert[] = toVertices(lon, lat, dlon, dlat); + if(coord.shape.equals("CIRCLE")) + { + inputRegion = "scircle '<(" + Double.toString(lon) + "d," + Double.toString(lat) + "d)," + + Double.toString(radius) + "d>'"; + } + else if( coord.shape.equals("RECT") ) + { + /*Vert vert[] = toVertices(lon, lat, dlon, dlat); + + inputRegion = "spoly '{" + + "(" + Double.toString(vert[0].lon) + "d," + Double.toString(vert[0].lat) + "d)," + + "(" + Double.toString(vert[1].lon) + "d," + Double.toString(vert[1].lat) + "d)," + + "(" + Double.toString(vert[2].lon) + "d," + Double.toString(vert[2].lat) + "d)," + + "(" + Double.toString(vert[3].lon) + "d," + Double.toString(vert[3].lat) + "d)" + + "}'"; + */ + + /* South-West and North-East corners of a box */ + String sw_lon = Double.toString(lon - dlon/2.0); + String sw_lat = Double.toString(lat - dlat/2.0); + String ne_lon = Double.toString(lon + dlon/2.0); + String ne_lat = Double.toString(lat + dlat/2.0); + + inputRegion = "sbox '( ("+ sw_lon + "d, " + sw_lat + "d), (" + ne_lon +"d, " + ne_lat + "d) )'"; + } + else + { + throw new IllegalArgumentException("Coord::shape was: " + coord.shape + " but valid is CIRCLE or RECT"); + } - inputRegion = "spoly '{" - + "(" + Double.toString(vert[0].lon) + "d," + Double.toString(vert[0].lat) + "d)," - + "(" + Double.toString(vert[1].lon) + "d," + Double.toString(vert[1].lat) + "d)," - + "(" + Double.toString(vert[2].lon) + "d," + Double.toString(vert[2].lat) + "d)," - + "(" + Double.toString(vert[3].lon) + "d," + Double.toString(vert[3].lat) + "d)" - + "}'"; - */ + String commaSepPubdids = String.join("\',\'", pubdidArr); - /* South-West and North-East corners of a box */ - String sw_lon = Double.toString(lon - dlon/2.0); - String sw_lat = Double.toString(lat - dlat/2.0); - String ne_lon = Double.toString(lon + dlon/2.0); - String ne_lat = Double.toString(lat + dlat/2.0); - inputRegion = "sbox '( ("+ sw_lon + "d, " + sw_lat + "d), (" + ne_lon +"d, " + ne_lat + "d) )'"; - } - else - { - throw new IllegalArgumentException("Coord::shape was: " + coord.shape + " but valid is CIRCLE or RECT"); - } + String theQuery; + //String theQuery ="SELECT dataproduct_type,obs_publisher_did,obs_collection,polygon_region_galactic,access_url,em_min,em_max," + + // FIXME coord sys read from somwehere + if(true) + { // GALACTIC + theQuery ="SELECT *," + + inputRegion + " <@ polygon_region_galactic AS inputInsideDb, " + + inputRegion + " @> polygon_region_galactic AS dbInsideInput FROM obscore WHERE (obs_publisher_did IN (\'"+commaSepPubdids+"\'))"; + } + else + { // ICRS + theQuery ="SELECT *," + + inputRegion + " <@ polygon_region AS inputInsideDb, " + + inputRegion + " @> polygon_region AS dbInsideInput FROM obscore WHERE (obs_publisher_did IN (\'"+commaSepPubdids+"\'))"; + } - String commaSepPubdids = String.join("\',\'", pubdidArr); - //String theQuery ="SELECT dataproduct_type,obs_publisher_did,obs_collection,polygon_region_galactic,access_url,em_min,em_max," - String theQuery ="SELECT *," - + inputRegion + " <@ polygon_region_galactic AS inputInsideDb, " - + inputRegion + " @> polygon_region_galactic AS dbInsideInput FROM obscore WHERE (obs_publisher_did IN (\'"+commaSepPubdids+"\'))"; + theQuery += " ORDER BY obs_collection"; + LOGGER.info(theQuery); - theQuery += " ORDER BY obs_collection"; + List<FormatResponseFilter.ObsCore> obsCoreList = new ArrayList<>(); - //LOGGER.info(theQuery); + LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); + try( + Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); + Statement st = conn.createStatement(); + ResultSet res = st.executeQuery(theQuery);) + { + //ResultSet res = doQuery(theQuery); - List<FormatResponseFilter.ObsCore> obsCoreList = new ArrayList<>(); + while (res.next()) + { + FormatResponseFilter.ObsCore obsCore = new FormatResponseFilter.ObsCore(); - LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); - try( - Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); - Statement st = conn.createStatement(); - ResultSet res = st.executeQuery(theQuery);) - { - //ResultSet res = doQuery(theQuery); + obsCore.dataproduct_type = res.getString("dataproduct_type"); + obsCore.calib_level = res.getInt("calib_level"); + obsCore.obs_collection = res.getString("obs_collection"); + obsCore.obs_id = res.getString("obs_id"); + obsCore.obs_publisher_did = res.getString("obs_publisher_did"); + + obsCore.access_url = res.getString("access_url"); + obsCore.access_format = res.getString("access_format"); + obsCore.access_estsize = res.getLong("access_estsize"); - while (res.next()) - { - 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_id = res.getString("obs_id"); - obsCore.obs_publisher_did = res.getString("obs_publisher_did"); - - 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_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.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.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.o_ucd = res.getString("o_ucd"); - + 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_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.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.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.o_ucd = res.getString("o_ucd"); + obsCore.pol_states = res.getString("pol_states"); obsCore.pol_xel = res.getLong("pol_xel"); obsCore.facility_name = res.getString("facility_name"); obsCore.instrument_name = res.getString("instrument_name"); - obsCore.vertices_str = res.getString("polygon_region_galactic"); - obsCore.inputInsideDb = res.getBoolean("inputInsideDb"); - obsCore.dbInsideInput = res.getBoolean("dbInsideInput"); + obsCore.vertices_str = res.getString("polygon_region_galactic"); + obsCore.inputInsideDb = res.getBoolean("inputInsideDb"); + obsCore.dbInsideInput = res.getBoolean("dbInsideInput"); - obsCoreList.add(obsCore); - } + obsCoreList.add(obsCore); + } - LOGGER.info("From DB collected # of ObsCore : " + obsCoreList.size()); - } - catch (SQLException se) - { - logSqlExInfo(se); - se.printStackTrace(); - } + LOGGER.info("From DB collected # of ObsCore : " + obsCoreList.size()); + } + catch (SQLException se) + { + logSqlExInfo(se); + se.printStackTrace(); + } - FormatResponseFilter.ObsCore[] cubes = obsCoreList.toArray(new FormatResponseFilter.ObsCore[0]); + FormatResponseFilter.ObsCore[] cubes = obsCoreList.toArray(new FormatResponseFilter.ObsCore[0]); - return cubes; - } -/* - public static void loadDriver()// throws ClassNotFoundException - { - /* https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html : - * Any JDBC 4.0 drivers that are found in your class path are automatically loaded. - * (However, you must manually load any drivers prior to JDBC 4.0 with the method - * Class.forName.) - * / - /* OR - * DriverManager.registerDriver(new org.postgresql.Driver()); - * LOGGER.info(getClasspathString()); - * LOGGER.info(getRegisteredDriverList()); - *i / - try - { -// Class.forName(DB_DRIVER); - } - catch (ClassNotFoundException e) - { - LOGGER.info("DB driver "+ DB_DRIVER +" not found: " + e.getMessage()); - e.printStackTrace(); - } + return cubes; } -*/ + /* + public static void loadDriver()// throws ClassNotFoundException + { + /* https://docs.oracle.com/javase/tutorial/jdbc/basics/connecting.html : + * Any JDBC 4.0 drivers that are found in your class path are automatically loaded. + * (However, you must manually load any drivers prior to JDBC 4.0 with the method + * Class.forName.) + * / + /* OR + * DriverManager.registerDriver(new org.postgresql.Driver()); + * LOGGER.info(getClasspathString()); + * LOGGER.info(getRegisteredDriverList()); + *i / + try + { + // Class.forName(DB_DRIVER); + } + catch (ClassNotFoundException e) + { + LOGGER.info("DB driver "+ DB_DRIVER +" not found: " + e.getMessage()); + e.printStackTrace(); + } + } + */ /* private ResultSet doQuery(String theQuery) throws SQLException, ClassNotFoundException { @@ -315,7 +322,7 @@ public class DbPSearch * (However, you must manually load any drivers prior to JDBC 4.0 with the method * Class.forName.) * / -// Class.forName(DB_DRIVER); + // Class.forName(DB_DRIVER); /* OR * DriverManager.registerDriver(new org.postgresql.Driver()); * LOGGER.info(getClasspathString()); @@ -333,96 +340,96 @@ public class DbPSearch return res; } */ -/* public Subsurvey[] getSurveyTable() - { - List<Subsurvey> survList = new ArrayList<Subsurvey>(); + /* public Subsurvey[] getSurveyTable() + { + List<Subsurvey> survList = new ArrayList<Subsurvey>(); - String theQuery = "SELECT name,species,transition,rest_frequency,restf_fits_unit,velocity_fits_unit,description FROM surveys"; + String theQuery = "SELECT name,species,transition,rest_frequency,restf_fits_unit,velocity_fits_unit,description FROM surveys"; - LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); - try( - Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); - Statement st = conn.createStatement(); - ResultSet res = st.executeQuery(theQuery);) - { - //ResultSet res = doQuery(theQuery); - - if(res == null) - { - LOGGER.info("Query yielded no resuls: " + theQuery); - } - else - { - while (res.next()) - { - Subsurvey surv = new Subsurvey(); - surv.rf = res.getDouble("rest_frequency"); - surv.surveyname = res.getString("name"); - surv.species = res.getString("species"); - surv.transition = res.getString("transition"); - surv.rf_unit = res.getString("restf_fits_unit"); - surv.vel_unit = res.getString("velocity_fits_unit"); - surv.description = res.getString("description"); - - survList.add(surv); - } - } - } - catch (SQLException se) - { - logSqlExInfo(se); - se.printStackTrace(); - } - return survList.toArray(new Subsurvey[0]); + LOGGER.info("Connecting to: " + dbConn.uri() + " with optional user/pwd: " + dbConn.userName() +" / "+ dbConn.password() ); + try( + Connection conn = DriverManager.getConnection(dbConn.uri(), dbConn.userName(), dbConn.password()); + Statement st = conn.createStatement(); + ResultSet res = st.executeQuery(theQuery);) + { + //ResultSet res = doQuery(theQuery); + + if(res == null) + { + LOGGER.info("Query yielded no resuls: " + theQuery); + } + else + { + while (res.next()) + { + Subsurvey surv = new Subsurvey(); + surv.rf = res.getDouble("rest_frequency"); + surv.surveyname = res.getString("name"); + surv.species = res.getString("species"); + surv.transition = res.getString("transition"); + surv.rf_unit = res.getString("restf_fits_unit"); + surv.vel_unit = res.getString("velocity_fits_unit"); + surv.description = res.getString("description"); + + survList.add(surv); } -*/ + } + } + catch (SQLException se) + { + logSqlExInfo(se); + se.printStackTrace(); + } + return survList.toArray(new Subsurvey[0]); + } + */ private void logSqlExInfo(SQLException se) { - LOGGER.info("SQLState : " + se.getSQLState()); - LOGGER.info("ErrorCode: " + se.getErrorCode()); - LOGGER.info("Message : " + se.getMessage()); - Throwable t = se.getCause(); - while(t != null) { - LOGGER.info("Cause: " + t); - t = t.getCause(); - } + LOGGER.info("SQLState : " + se.getSQLState()); + LOGGER.info("ErrorCode: " + se.getErrorCode()); + LOGGER.info("Message : " + se.getMessage()); + Throwable t = se.getCause(); + while(t != null) { + LOGGER.info("Cause: " + t); + t = t.getCause(); + } } private String getClasspathString() { - StringBuffer classpath = new StringBuffer("getClasspathString:\r\n"); - ClassLoader applicationClassLoader = this.getClass().getClassLoader(); - if (applicationClassLoader == null) { - applicationClassLoader = ClassLoader.getSystemClassLoader(); - } - URL[] urls = ((URLClassLoader)applicationClassLoader).getURLs(); - for(int i=0; i < urls.length; i++) { - classpath.append(urls[i].getFile()).append("\r\n"); - } + StringBuffer classpath = new StringBuffer("getClasspathString:\r\n"); + ClassLoader applicationClassLoader = this.getClass().getClassLoader(); + if (applicationClassLoader == null) { + applicationClassLoader = ClassLoader.getSystemClassLoader(); + } + URL[] urls = ((URLClassLoader)applicationClassLoader).getURLs(); + for(int i=0; i < urls.length; i++) { + classpath.append(urls[i].getFile()).append("\r\n"); + } - return classpath.toString(); + return classpath.toString(); } /* Returns the list of JDBC Drivers loaded by the caller's class loader */ private String getRegisteredDriverList() { - StringBuffer drvList = new StringBuffer("getRegisteredDriverList:\r\n"); - for (Enumeration e = DriverManager.getDrivers(); - e.hasMoreElements(); ) - { - Driver d = (Driver) e.nextElement(); - String driverClass = d.getClass().getName(); - drvList.append(driverClass).append("\r\n"); - } - return drvList.toString(); + StringBuffer drvList = new StringBuffer("getRegisteredDriverList:\r\n"); + for (Enumeration e = DriverManager.getDrivers(); + e.hasMoreElements(); ) + { + Driver d = (Driver) e.nextElement(); + String driverClass = d.getClass().getName(); + drvList.append(driverClass).append("\r\n"); + } + return drvList.toString(); } diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java index 21a613cbdcd95b3d24116733f957097432d84ba1..1992e11b3172174af732696d508808ed0daefb76 100644 --- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java +++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java @@ -6,10 +6,16 @@ import java.util.Map; import java.io.*; -import javax.servlet.*; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpServletResponseWrapper; -import javax.servlet.http.*; import java.nio.charset.Charset; @@ -52,6 +58,7 @@ public class FormatResponseFilter implements Filter final String RESPONSE_ENCODING = "UTF-8"; protected Subsurvey[] dbSubsurveyArr = null; + private String reqQueryString; @Override @@ -67,35 +74,35 @@ public class FormatResponseFilter implements Filter } - @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { LOGGER.info("trace"); LOGGER.info("REQUEST START ============================================================================================="); - FormatResponseWrapper pubdidWrapper = new FormatResponseWrapper((HttpServletResponse) response); + FormatResponseWrapper responseWrapper = new FormatResponseWrapper((HttpServletResponse) response); - chain.doFilter(request, pubdidWrapper); + chain.doFilter(request, responseWrapper); long startTime_msec = System.currentTimeMillis(); PrintWriter responseWriter = ((HttpServletResponse)response).getWriter(); if (true) - //if (pubdidWrapper.getContentType().contains("text/plain")) + //if (responseWrapper.getContentType().contains("text/plain")) { Dataset[] datasetArr = getOutputData( - pubdidWrapper.getPubdidArr(), - pubdidWrapper.coord, - pubdidWrapper.subsurveyId, - pubdidWrapper.queryString, + responseWrapper.getPubdidArr(), + responseWrapper.coord, // VLKB: calc ovelrap-code in Spectrum + responseWrapper.queryString, settings.serviceUrls.cutoutUrl()); SearchOutputData searchOutputData = SearchOutputData.marshall( datasetArr, - pubdidWrapper.auth, pubdidWrapper.coord, pubdidWrapper.subsurveyId, + responseWrapper.auth, + responseWrapper.coord, // VLKB: calc Vertices + responseWrapper.subsurveyId, settings.serviceUrls.mergeUrl(), dbSubsurveyArr); @@ -182,7 +189,7 @@ public class FormatResponseFilter implements Filter - private Dataset[] getOutputData(String[] pubdidArr, Coord coord,SubsurveyId subsurveyId, String queryString, String fitsRemotePath) + private Dataset[] getOutputData(String[] pubdidArr, Coord coord,/*SubsurveyId subsurveyId,*/ String queryString, String fitsRemotePath) { LOGGER.info("trace"); @@ -192,7 +199,7 @@ public class FormatResponseFilter implements Filter dbps = new DbPSearch(); } - FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord, subsurveyId); + FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord/*, subsurveyId*/); return convert(obsCoreArr, coord, queryString, fitsRemotePath); } diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java index bbc9ae7b9ea3fbb8f7f619c53edb23d18d35676a..97a425ff20e730357b2ffb782e878589b9d9468e 100644 --- a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java +++ b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java @@ -43,6 +43,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet legacyLogEntry(request); Map<String, String[]> params = request.getParameterMap(); + String queryString = request.getQueryString(); try { @@ -73,11 +74,11 @@ public class SearchServlet extends javax.servlet.http.HttpServlet /* collect all search description and set to wrapped response */ - FormatResponseWrapper pubdidWrapper = (FormatResponseWrapper) response; - pubdidWrapper.setPubdidArr(pubdidArr); - pubdidWrapper.coord = coord; - pubdidWrapper.subsurveyId = subsurveyId; - // FIXME set here or not ? pubdidWrapper.queryString = ??; + FormatResponseWrapper responseWrapper = (FormatResponseWrapper) response; + responseWrapper.setPubdidArr(pubdidArr); + responseWrapper.coord = coord; + responseWrapper.subsurveyId = subsurveyId; + responseWrapper.queryString = queryString; } else {