|
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.
|