--- android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableServlet.java 2009/10/01 08:31:47 378 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableServlet.java 2009/10/20 10:32:19 451 @@ -10,6 +10,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import dk.thoerup.curcuitbreaker.CircuitBreakerException; + /** * Servlet implementation class TimetableServlet */ @@ -21,6 +23,7 @@ TimetableFetcher fetcher = new TimetableFetcher(); + @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String train = request.getParameter("train").trim(); @@ -34,7 +37,7 @@ String trainID = sections[1]; try { - List timetable = fetcher.lookupTimetable(trainID, type); + List timetable = fetcher.cachedLookupTimetable(trainID, type); String responseXML = formatTimetable(timetable); @@ -43,7 +46,10 @@ } catch (java.net.SocketTimeoutException ste) { logger.warning("(timetable) Read timed out, train="+train); response.sendError(500, "Backend timed out"); - } catch (Exception e) { + } catch (CircuitBreakerException cbe) { + logger.warning("Circuitbreaker - failing fast"); + response.sendError(500); + }catch (Exception e) { logger.log(Level.WARNING, "failure looking up timetable: train=" +train, e); response.sendError(500); }