Mercurial > hg > digilib-old
comparison servlet/src/digilib/servlet/Scaler.java @ 558:2e971b9f3022 digilibPDF
added some enums
| author | robcast |
|---|---|
| date | Fri, 17 Dec 2010 00:32:18 +0100 |
| parents | 0885f5ca5b24 |
| children | 686086d6e6d6 |
comparison
equal
deleted
inserted
replaced
| 557:0885f5ca5b24 | 558:2e971b9f3022 |
|---|---|
| 31 public class Scaler extends HttpServlet { | 31 public class Scaler extends HttpServlet { |
| 32 | 32 |
| 33 /** digilib servlet version (for all components) */ | 33 /** digilib servlet version (for all components) */ |
| 34 public static final String dlVersion = "1.9.0a"; | 34 public static final String dlVersion = "1.9.0a"; |
| 35 | 35 |
| 36 /** general error code */ | 36 /** servlet error codes */ |
| 37 public static final int ERROR_UNKNOWN = 0; | 37 public static enum Error {UNKNOWN, AUTH, FILE, IMAGE}; |
| 38 | 38 |
| 39 /** error code for authentication error */ | 39 /** type of error message */ |
| 40 public static final int ERROR_AUTH = 1; | 40 public static enum ErrMsg {IMAGE, TEXT, CODE}; |
| 41 | 41 |
| 42 /** error code for file operation error */ | |
| 43 public static final int ERROR_FILE = 2; | |
| 44 | |
| 45 /** error code for image operation error */ | |
| 46 public static final int ERROR_IMAGE = 3; | |
| 47 | |
| 48 /** logger for accounting requests */ | 42 /** logger for accounting requests */ |
| 49 protected static Logger accountlog = Logger.getLogger("account.request"); | 43 protected static Logger accountlog = Logger.getLogger("account.request"); |
| 50 | 44 |
| 51 /** gengeral logger for this class */ | 45 /** gengeral logger for this class */ |
| 52 protected static Logger logger = Logger.getLogger("digilib.servlet"); | 46 protected static Logger logger = Logger.getLogger("digilib.servlet"); |
| 186 // parse request | 180 // parse request |
| 187 DigilibRequest dlRequest = new DigilibRequest(request); | 181 DigilibRequest dlRequest = new DigilibRequest(request); |
| 188 // extract the job information | 182 // extract the job information |
| 189 ImageJobDescription jobTicket = ImageJobDescription.getInstance(dlRequest, dlConfig); | 183 ImageJobDescription jobTicket = ImageJobDescription.getInstance(dlRequest, dlConfig); |
| 190 | 184 |
| 185 // type of error reporting | |
| 186 ErrMsg errMsgType = ErrMsg.IMAGE; | |
| 187 if (dlRequest.hasOption("errtxt")) { | |
| 188 errMsgType = ErrMsg.TEXT; | |
| 189 } else if (dlRequest.hasOption("errcode")) { | |
| 190 errMsgType = ErrMsg.CODE; | |
| 191 } | |
| 192 | |
| 191 try { | 193 try { |
| 192 /* | 194 /* |
| 193 * check if we can fast-track without scaling | 195 * check if we can fast-track without scaling |
| 194 */ | 196 */ |
| 195 ImageFile fileToLoad = jobTicket.getFileToLoad(); | 197 ImageFile fileToLoad = jobTicket.getFileToLoad(); |
| 247 logger.debug("Job Processing Time: " | 249 logger.debug("Job Processing Time: " |
| 248 + (System.currentTimeMillis() - startTime) + "ms"); | 250 + (System.currentTimeMillis() - startTime) + "ms"); |
| 249 | 251 |
| 250 } catch (IOException e) { | 252 } catch (IOException e) { |
| 251 logger.error(e.getClass() + ": " + e.getMessage()); | 253 logger.error(e.getClass() + ": " + e.getMessage()); |
| 252 digilibError(dlRequest.hasOption("errtxt"), dlRequest.hasOption("errimg"), dlRequest.hasOption("errcode"), ERROR_FILE, null, response); | 254 digilibError(errMsgType, Error.FILE, null, response); |
| 253 } catch (AuthOpException e) { | 255 } catch (AuthOpException e) { |
| 254 logger.error(e.getClass() + ": " + e.getMessage()); | 256 logger.error(e.getClass() + ": " + e.getMessage()); |
| 255 digilibError(dlRequest.hasOption("errtxt"), dlRequest.hasOption("errimg"), dlRequest.hasOption("errcode"), ERROR_AUTH, null, response); | 257 digilibError(errMsgType, Error.AUTH, null, response); |
| 256 } catch (InterruptedException e) { | 258 } catch (InterruptedException e) { |
| 257 logger.error(e.getClass() + ": " + e.getMessage()); | 259 logger.error(e.getClass() + ": " + e.getMessage()); |
| 258 } catch (ExecutionException e) { | 260 } catch (ExecutionException e) { |
| 259 logger.error(e.getClass() + ": " + e.getMessage()); | 261 logger.error(e.getClass() + ": " + e.getMessage()); |
| 260 String causeMsg = e.getCause().getMessage(); | 262 String causeMsg = e.getCause().getMessage(); |
| 261 logger.error("caused by: " + causeMsg); | 263 logger.error("caused by: " + causeMsg); |
| 262 digilibError(dlRequest.hasOption("errtxt"), dlRequest.hasOption("errimg"), dlRequest.hasOption("errcode"), ERROR_IMAGE, causeMsg, response); | 264 digilibError(errMsgType, Error.IMAGE, causeMsg, response); |
| 263 } | 265 } |
| 264 | 266 |
| 265 } | 267 } |
| 266 | 268 |
| 267 /** | 269 /** |
| 268 * Sends an error to the client as text or image. | 270 * Sends an error to the client as text or image. |
| 269 * | 271 * |
| 270 * @param asText | |
| 271 * @param type | 272 * @param type |
| 273 * @param error | |
| 272 * @param msg | 274 * @param msg |
| 273 * @param response | 275 * @param response |
| 274 */ | 276 */ |
| 275 public void digilibError(boolean asText, boolean asImage, boolean asCode, int type, String msg, | 277 public void digilibError(ErrMsg type, Error error, String msg, |
| 276 HttpServletResponse response) { | 278 HttpServletResponse response) { |
| 277 try { | 279 try { |
| 278 File img = null; | 280 File img = null; |
| 279 int status = 0; | 281 int status = 0; |
| 280 if (type == ERROR_AUTH) { | 282 if (error == Error.AUTH) { |
| 281 if (msg == null) { | 283 if (msg == null) { |
| 282 msg = "ERROR: Unauthorized access!"; | 284 msg = "ERROR: Unauthorized access!"; |
| 283 } | 285 } |
| 284 img = denyImgFile; | 286 img = denyImgFile; |
| 285 status = HttpServletResponse.SC_FORBIDDEN; | 287 status = HttpServletResponse.SC_FORBIDDEN; |
| 286 } else if (type == ERROR_FILE) { | 288 } else if (error == Error.FILE) { |
| 287 if (msg == null) { | 289 if (msg == null) { |
| 288 msg = "ERROR: Image file not found!"; | 290 msg = "ERROR: Image file not found!"; |
| 289 } | 291 } |
| 290 img = notfoundImgFile; | 292 img = notfoundImgFile; |
| 291 status = HttpServletResponse.SC_NOT_FOUND; | 293 status = HttpServletResponse.SC_NOT_FOUND; |
| 294 msg = "ERROR: Other image error!"; | 296 msg = "ERROR: Other image error!"; |
| 295 } | 297 } |
| 296 img = this.errorImgFile; | 298 img = this.errorImgFile; |
| 297 status = HttpServletResponse.SC_BAD_REQUEST; | 299 status = HttpServletResponse.SC_BAD_REQUEST; |
| 298 } | 300 } |
| 299 if (asText) { | 301 if (type == ErrMsg.TEXT) { |
| 300 ServletOps.htmlMessage(msg, response); | 302 ServletOps.htmlMessage(msg, response); |
| 301 } else if (asCode) { | 303 } else if (type == ErrMsg.CODE) { |
| 302 response.sendError(status, msg); | 304 response.sendError(status, msg); |
| 303 } else if (img != null) { | 305 } else if (img != null) { |
| 304 // default: image | 306 // default: image |
| 305 ServletOps.sendFile(img, null, null, response); | 307 ServletOps.sendFile(img, null, null, response); |
| 306 } | 308 } |
