From: SVN c. m. f. t. SWORD-A. p. <swo...@li...> - 2012-04-26 16:17:30
|
Revision: 504 http://sword-app.svn.sourceforge.net/sword-app/?rev=504&view=rev Author: richard-jones Date: 2012-04-26 16:17:19 +0000 (Thu, 26 Apr 2012) Log Message: ----------- add support for 404 Previously this library did not expressly support 404 responses (although it was possible with a workaround). This patch: * allows implementers to throw a sworderror with just a the status code as an argument * allows errors which have only status code arguments to be returned to the client with an empty body (rather than the server's 404 page or a sword error document) Modified Paths: -------------- JavaServer2.0/trunk/src/main/java/org/swordapp/server/ErrorDocument.java JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordAPIEndpoint.java JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordError.java Modified: JavaServer2.0/trunk/src/main/java/org/swordapp/server/ErrorDocument.java =================================================================== --- JavaServer2.0/trunk/src/main/java/org/swordapp/server/ErrorDocument.java 2012-04-25 13:39:56 UTC (rev 503) +++ JavaServer2.0/trunk/src/main/java/org/swordapp/server/ErrorDocument.java 2012-04-26 16:17:19 UTC (rev 504) @@ -16,7 +16,7 @@ public class ErrorDocument { - private String errorUri; + private String errorUri = null; private Map<String, Integer> errorCodes = new HashMap<String, Integer>(); private String summary = null; private String verboseDescription = null; @@ -66,7 +66,7 @@ return this.status; } - if (this.errorCodes.containsKey(errorUri)) + if (errorUri != null && this.errorCodes.containsKey(errorUri)) { return this.errorCodes.get(errorUri); } Modified: JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordAPIEndpoint.java =================================================================== --- JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordAPIEndpoint.java 2012-04-25 13:39:56 UTC (rev 503) +++ JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordAPIEndpoint.java 2012-04-26 16:17:19 UTC (rev 504) @@ -347,10 +347,10 @@ { try { - if (!this.config.returnErrorBody()) + if (!this.config.returnErrorBody() || !e.hasBody()) { ErrorDocument doc = new ErrorDocument(e.getErrorUri(), e.getStatus()); - resp.sendError(doc.getStatus()); + resp.setStatus(doc.getStatus()); return; } Modified: JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordError.java =================================================================== --- JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordError.java 2012-04-25 13:39:56 UTC (rev 503) +++ JavaServer2.0/trunk/src/main/java/org/swordapp/server/SwordError.java 2012-04-26 16:17:19 UTC (rev 504) @@ -7,12 +7,20 @@ { private String errorUri; private int status = -1; + private boolean hasBody = true; public SwordError() { super(); } + public SwordError(int status) + { + super(); + this.status = status; + this.hasBody = false; + } + public SwordError(String errorUri) { super(errorUri); @@ -74,4 +82,9 @@ { return status; } + + public boolean hasBody() + { + return hasBody; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |