You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2014/06/02 11:22:13 UTC

git commit: [OLINGO-298] Fixed response status and removed NotAllowedException

Repository: olingo-odata2
Updated Branches:
  refs/heads/master d7c682400 -> 7d71cee8f


[OLINGO-298] Fixed response status and removed NotAllowedException


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/7d71cee8
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/7d71cee8
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/7d71cee8

Branch: refs/heads/master
Commit: 7d71cee8f7f8509e624db8aaa7788d3078f12a1c
Parents: d7c6824
Author: Michael Bolz <mi...@apache.org>
Authored: Mon Jun 2 11:10:34 2014 +0200
Committer: Michael Bolz <mi...@apache.org>
Committed: Mon Jun 2 11:18:51 2014 +0200

----------------------------------------------------------------------
 .../odata2/core/rest/ODataExceptionMapperImpl.java     | 13 +++++--------
 .../olingo/odata2/core/servlet/ODataServlet.java       |  7 ++++---
 .../odata2/core/rest/ODataExceptionMapperImplTest.java |  4 ++--
 .../apache/olingo/odata2/fit/basic/BasicHttpTest.java  |  4 ++--
 .../apache/olingo/odata2/fit/basic/UrlRewriteTest.java |  2 +-
 5 files changed, 14 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7d71cee8/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImpl.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImpl.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImpl.java
index 5f7d059..b5dd749 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImpl.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImpl.java
@@ -25,7 +25,6 @@ import java.util.Set;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.NotAllowedException;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.Application;
 import javax.ws.rs.core.Context;
@@ -93,8 +92,7 @@ public class ODataExceptionMapperImpl implements ExceptionMapper<Exception> {
 
     ODataExceptionWrapper exceptionWrapper =
         new ODataExceptionWrapper(uriInfo, httpHeaders, getErrorHandlerCallback());
-    ODataResponse oDataResponse = exceptionWrapper.wrapInExceptionResponse(exception);
-    return oDataResponse;
+    return exceptionWrapper.wrapInExceptionResponse(exception);
   }
 
   private ODataResponse handleWebApplicationException(final Exception exception) throws ClassNotFoundException,
@@ -132,8 +130,9 @@ public class ODataExceptionMapperImpl implements ExceptionMapper<Exception> {
     context.setErrorCode(null);
     context.setMessage(exception.getMessage());
     context.setLocale(DEFAULT_RESPONSE_LOCALE);
-    context.setHttpStatus(HttpStatusCodes.fromStatusCode(exception.getResponse().getStatus()));
-    if (exception instanceof NotAllowedException) {
+    HttpStatusCodes statusCode = HttpStatusCodes.fromStatusCode(exception.getResponse().getStatus());
+    context.setHttpStatus(statusCode);
+    if (statusCode == HttpStatusCodes.METHOD_NOT_ALLOWED) {
       // RFC 2616, 5.1.1: " An origin server SHOULD return the status code
       // 405 (Method Not Allowed) if the method is known by the origin server
       // but not allowed for the requested resource, and 501 (Not Implemented)
@@ -194,10 +193,8 @@ public class ODataExceptionMapperImpl implements ExceptionMapper<Exception> {
   }
 
   private ODataErrorCallback getErrorHandlerCallback() {
-    ODataErrorCallback callback = null;
     final ODataServiceFactory serviceFactory =
         ODataRootLocator.createServiceFactoryFromContext(app, servletRequest, servletConfig);
-    callback = serviceFactory.getCallback(ODataErrorCallback.class);
-    return callback;
+    return serviceFactory.getCallback(ODataErrorCallback.class);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7d71cee8/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/servlet/ODataServlet.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/servlet/ODataServlet.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/servlet/ODataServlet.java
index dbe2935..ef5be4f 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/servlet/ODataServlet.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/servlet/ODataServlet.java
@@ -128,7 +128,7 @@ public class ODataServlet extends HttpServlet {
     } else if (HTTP_METHOD_HEAD.equals(method) || HTTP_METHOD_OPTIONS.equals(method)) {
       createNotImplementedResponse(req, ODataNotImplementedException.COMMON, resp);
     } else {
-      createMethodNotAllowedResponse(req, ODataHttpException.COMMON, resp);
+      createNotImplementedResponse(req, ODataHttpException.COMMON, resp);
     }
   }
 
@@ -149,7 +149,7 @@ public class ODataServlet extends HttpServlet {
     } else if (HTTP_METHOD_HEAD.equals(xHttpMethod) || HTTP_METHOD_OPTIONS.equals(xHttpMethod)) {
       createNotImplementedResponse(req, ODataNotImplementedException.COMMON, resp);
     } else {
-      return false;
+      createNotImplementedResponse(req, ODataNotImplementedException.COMMON, resp);
     }
     return true;
   }
@@ -201,7 +201,7 @@ public class ODataServlet extends HttpServlet {
           .build();
       createResponse(resp, odataResponse);
     } else {
-      createMethodNotAllowedResponse(req, ODataHttpException.COMMON, resp);
+      createNotImplementedResponse(req, ODataHttpException.COMMON, resp);
     }
 
   }
@@ -239,6 +239,7 @@ public class ODataServlet extends HttpServlet {
     ODataExceptionWrapper exceptionWrapper = new ODataExceptionWrapper(req);
     ODataResponse response =
         exceptionWrapper.wrapInExceptionResponse(new ODataNotImplementedException(messageReference));
+//    resp.setStatus(HttpStatusCodes.NOT_IMPLEMENTED.getStatusCode());
     createResponse(resp, response);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7d71cee8/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImplTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImplTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImplTest.java
index 64e8cb2..74da93c 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImplTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/rest/ODataExceptionMapperImplTest.java
@@ -36,7 +36,7 @@ import java.util.Map;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.NotAllowedException;
+import javax.ws.rs.ClientErrorException;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MultivaluedHashMap;
 import javax.ws.rs.core.MultivaluedMap;
@@ -370,7 +370,7 @@ public class ODataExceptionMapperImplTest extends BaseTest {
     // prepare
     String message = "The request dispatcher does not allow the HTTP method used for the request.";
     Exception exception =
-        new NotAllowedException(Response.status(Response.Status.METHOD_NOT_ALLOWED).header(HttpHeaders.ALLOW, "GET")
+        new ClientErrorException(Response.status(Response.Status.METHOD_NOT_ALLOWED).header(HttpHeaders.ALLOW, "GET")
             .build());
 
     // execute

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7d71cee8/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/BasicHttpTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/BasicHttpTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/BasicHttpTest.java
index b8d5939..408373c 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/BasicHttpTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/BasicHttpTest.java
@@ -207,7 +207,7 @@ public class BasicHttpTest extends AbstractBasicTest {
   public void unknownMethod() throws Exception {
     HttpSomethingUnsupported request = new HttpSomethingUnsupported(getEndpoint() + "aaa/bbb/ccc");
     final HttpResponse response = getHttpClient().execute(request);
-    assertEquals(HttpStatusCodes.METHOD_NOT_ALLOWED.getStatusCode(), response.getStatusLine().getStatusCode());
+    assertEquals(HttpStatusCodes.NOT_IMPLEMENTED.getStatusCode(), response.getStatusLine().getStatusCode());
   }
 
   @Test
@@ -269,6 +269,6 @@ public class BasicHttpTest extends AbstractBasicTest {
 
   @Test
   public void tunneledUnknownMethodOverride() throws Exception {
-    tunnelPost("X-HTTP-Method-Override", "xxx", HttpStatusCodes.METHOD_NOT_ALLOWED);
+    tunnelPost("X-HTTP-Method-Override", "xxx", HttpStatusCodes.NOT_IMPLEMENTED);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/7d71cee8/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/UrlRewriteTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/UrlRewriteTest.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/UrlRewriteTest.java
index 348e715..37d8ba7 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/UrlRewriteTest.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/UrlRewriteTest.java
@@ -130,7 +130,7 @@ public class UrlRewriteTest extends AbstractBasicTest {
   public void testSomethingUnsupportedServiceDocumentRedirect() throws Exception {
     final HttpRequestBase httpMethod = createRedirectRequest(HttpSomethingUnsupported.class);
     final HttpResponse response = getHttpClient().execute(httpMethod);
-    assertEquals(HttpStatusCodes.METHOD_NOT_ALLOWED.getStatusCode(), response.getStatusLine().getStatusCode());
+    assertEquals(HttpStatusCodes.NOT_IMPLEMENTED.getStatusCode(), response.getStatusLine().getStatusCode());
   }
 
   private HttpRequestBase createRedirectRequest(final Class<? extends HttpRequestBase> clazz) throws Exception {