From c29d8e07d495f4f56b3b3da52868cd30cc9d0382 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@bioforsk.no> Date: Mon, 19 Aug 2013 15:07:21 +0200 Subject: [PATCH] Added exception handling --- .../vips/core/service/ModelResourceImpl.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/no/bioforsk/vips/core/service/ModelResourceImpl.java b/src/main/java/no/bioforsk/vips/core/service/ModelResourceImpl.java index 327767c..c05613b 100644 --- a/src/main/java/no/bioforsk/vips/core/service/ModelResourceImpl.java +++ b/src/main/java/no/bioforsk/vips/core/service/ModelResourceImpl.java @@ -3,9 +3,12 @@ package no.bioforsk.vips.core.service; import java.util.logging.Level; import java.util.logging.Logger; import javax.ws.rs.PathParam; +import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import no.bioforsk.vips.entity.ModelConfiguration; +import no.bioforsk.vips.model.ConfigValidationException; import no.bioforsk.vips.model.Model; +import no.bioforsk.vips.model.ModelExcecutionException; import no.bioforsk.vips.model.factory.ModelFactory; /** @@ -177,10 +180,10 @@ public class ModelResourceImpl implements ModelResource{ calledModel.setConfiguration(config); return Response.ok().entity(calledModel.getResult()).build(); } - catch(InstantiationException | IllegalAccessException ex) + catch(InstantiationException | IllegalAccessException | ConfigValidationException | ModelExcecutionException ex) { Logger.getLogger(ModelResourceImpl.class.getName()).log(Level.SEVERE, null, ex); - return Response.serverError().build(); + return Response.serverError().entity(ex.getMessage()).build(); } } @@ -203,10 +206,17 @@ public class ModelResourceImpl implements ModelResource{ calledModel.setConfiguration(config); return Response.ok().entity(calledModel.getResult()).build(); } - catch(InstantiationException | IllegalAccessException ex) + catch(InstantiationException | IllegalAccessException | ConfigValidationException | ModelExcecutionException ex) { Logger.getLogger(ModelResourceImpl.class.getName()).log(Level.SEVERE, null, ex); - return Response.serverError().build(); + if(ex instanceof ConfigValidationException){ + + throw new WebApplicationException(Response.status(Response.Status.BAD_REQUEST).entity(ex).build()); + } + else + { + throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ex).build()); + } } } -- GitLab