--- android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java 2009/09/25 13:54:16 347 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/LocateStations.java 2009/10/02 15:11:25 388 @@ -5,6 +5,8 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -19,6 +21,8 @@ public class LocateStations extends HttpServlet { private static final long serialVersionUID = 1L; + Logger logger = Logger.getLogger( LocateStations.class.toString() ); + /** * @see HttpServlet#HttpServlet() */ @@ -55,7 +59,7 @@ " SELECT id,name,latitude,longitude,stationcode_fjrn,stationcode_stog, " + " earth_distance( ll_to_earth(latitude,longitude), ll_to_earth(?,?))::int AS calcdist " + " FROM trainstations " + - " WHERE latitude IS NOT NULL AND longitude IS NOT NULL " + + " WHERE enabled = true AND latitude IS NOT NULL AND longitude IS NOT NULL " + " ) AS trainstations2 " + "ORDER BY calcdist ASC " + "LIMIT 4 "; @@ -70,10 +74,11 @@ "WHERE name ILIKE ? AND latitude IS NOT NULL AND longitude IS NOT NULL " + "ORDER BY name "; stmt = conn.prepareStatement(SQL); - stmt.setString(1, "%" + name + "%"); + stmt.setString(1, name + "%"); break; default: - throw new SQLException("not enough parameters"); + // This should not be possible + logger.severe("getStations(): default switch case"); } @@ -121,7 +126,7 @@ } if (request.getParameter("name") != null) { - name = request.getParameter("name"); + name = request.getParameter("name").trim(); method = Requested.BY_NAME; } @@ -139,9 +144,10 @@ conn.close(); conn = null; - - } catch (Exception e) { - throw new ServletException(e); + + } catch (Exception e) { + logger.log(Level.SEVERE, "Exception while finding stations", e); + response.sendError(500); } finally { try { if (conn != null)