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 2015/05/29 11:01:09 UTC
[2/4] olingo-odata4 git commit: [OLINGO-663] Add new exceptiontext
and right status code
[OLINGO-663] Add new exceptiontext and right status code
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/ea89f721
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/ea89f721
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/ea89f721
Branch: refs/heads/OLINGO-632_OSGi-Support
Commit: ea89f7213e6cc0189a020f5161f0c1fb653b8597
Parents: 29b169d
Author: Christian Amend <ch...@apache.org>
Authored: Thu May 28 11:02:18 2015 +0200
Committer: Christian Amend <ch...@apache.org>
Committed: Thu May 28 11:02:18 2015 +0200
----------------------------------------------------------------------
.../apache/olingo/server/api/CustomETagSupport.java | 2 +-
.../olingo/server/core/ODataExceptionHelper.java | 16 +++++++++++-----
.../org/apache/olingo/server/core/ODataHandler.java | 5 ++++-
.../server/core/PreconditionRequiredException.java | 3 +--
.../olingo/server/core/PreconditionsValidator.java | 2 +-
.../server-core-exceptions-i18n.properties | 4 +++-
.../server/core/PreconditionsValidatorTest.java | 8 ++++----
7 files changed, 25 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-api/src/main/java/org/apache/olingo/server/api/CustomETagSupport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/CustomETagSupport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/CustomETagSupport.java
index 1cca8ab..2644b28 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/CustomETagSupport.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/CustomETagSupport.java
@@ -19,7 +19,7 @@
package org.apache.olingo.server.api;
/**
- * <p>Processors that would like to support concurrency control for certain entity sets can implement this
+ * <p>Processors that would like to support etags for certain entity sets can implement this
* interface.</p>
* <p>If implemented this interface can be registered at the ODataHttpHandler. This will result in change request to
* require an if-match/if-none-match or an if-modified-since/if-unmodified-since header. Otherwise the request will
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
index 78a27ea..f7c2fe4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataExceptionHelper.java
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -54,12 +54,12 @@ public class ODataExceptionHelper {
}
public static ODataServerError
- createServerErrorObject(final UriParserSyntaxException e, final Locale requestedLocale) {
+ createServerErrorObject(final UriParserSyntaxException e, final Locale requestedLocale) {
ODataServerError serverError = basicTranslatedError(e, requestedLocale);
serverError.setStatusCode(
UriParserSyntaxException.MessageKeys.WRONG_VALUE_FOR_SYSTEM_QUERY_OPTION_FORMAT.equals(e.getMessageKey()) ?
HttpStatusCode.NOT_ACCEPTABLE.getStatusCode() :
- HttpStatusCode.BAD_REQUEST.getStatusCode());
+ HttpStatusCode.BAD_REQUEST.getStatusCode());
return serverError;
}
@@ -103,8 +103,14 @@ public class ODataExceptionHelper {
.setStatusCode(HttpStatusCode.BAD_REQUEST.getStatusCode());
}
+ public static ODataServerError createServerErrorObject(final PreconditionRequiredException e,
+ final Locale requestedLocale) {
+ return basicTranslatedError(e, requestedLocale)
+ .setStatusCode(HttpStatusCode.PRECONDITION_REQUIRED.getStatusCode());
+ }
+
public static ODataServerError
- createServerErrorObject(final ODataTranslatedException e, final Locale requestedLocale) {
+ createServerErrorObject(final ODataTranslatedException e, final Locale requestedLocale) {
return basicTranslatedError(e, requestedLocale);
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
index b1beaea..b43497f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataHandler.java
@@ -93,7 +93,10 @@ public class ODataHandler {
} catch (DeserializerException e) {
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
handleException(request, response, serverError);
- } catch (ODataHandlerException e) {
+ } catch (PreconditionRequiredException e) {
+ ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
+ handleException(request, response, serverError);
+ }catch (ODataHandlerException e) {
ODataServerError serverError = ODataExceptionHelper.createServerErrorObject(e, null);
handleException(request, response, serverError);
} catch (ODataApplicationException e) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionRequiredException.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionRequiredException.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionRequiredException.java
index a9b6754..4fb527f 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionRequiredException.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionRequiredException.java
@@ -24,8 +24,7 @@ public class PreconditionRequiredException extends ODataTranslatedException {
private static final long serialVersionUID = -8112658467394158700L;
public static enum MessageKeys implements MessageKey {
- /** parameter: required header */
- PRECONDITION_REQUIRED;
+ MISSING_HEADER;
@Override
public String getKey() {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionsValidator.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionsValidator.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionsValidator.java
index fe1875e..81be05b 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionsValidator.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/PreconditionsValidator.java
@@ -60,7 +60,7 @@ public class PreconditionsValidator {
private void checkETagHeaderPresent() throws PreconditionRequiredException {
if (ifMatch == null && ifNoneMatch == null) {
throw new PreconditionRequiredException("Expected an if-match or if-none-match header",
- PreconditionRequiredException.MessageKeys.PRECONDITION_REQUIRED);
+ PreconditionRequiredException.MessageKeys.MISSING_HEADER);
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
index 2bca286..9455c05 100644
--- a/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
+++ b/lib/server-core/src/main/resources/server-core-exceptions-i18n.properties
@@ -142,4 +142,6 @@ BatchDeserializerException.MISSING_CONTENT_TYPE=Missing content-type at line '%1
BatchDeserializerException.MISSING_MANDATORY_HEADER=Missing mandatory header at line '%1$s'.
BatchDeserializerException.INVALID_BASE_URI=The base URI do not match the service base URI at line '%1$s'.
-BatchSerializerExecption.MISSING_CONTENT_ID=Each request within a change set required exactly one content id.
\ No newline at end of file
+BatchSerializerExecption.MISSING_CONTENT_ID=Each request within a change set required exactly one content id.
+
+PreconditionRequiredException.MISSING_HEADER=The Operation you requested on this Entity requires an if-match or if-none-match header.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/ea89f721/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
index 3a1c131..3dc07c7 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/PreconditionsValidatorTest.java
@@ -69,7 +69,7 @@ public class PreconditionsValidatorTest {
new PreconditionsValidator(new ETagSupport(), uriInfo, null, null).validatePreconditions(false);
fail("Expected a PreconditionRequiredException but was not thrown");
} catch (PreconditionRequiredException e) {
- assertEquals(PreconditionRequiredException.MessageKeys.PRECONDITION_REQUIRED, e.getMessageKey());
+ assertEquals(PreconditionRequiredException.MessageKeys.MISSING_HEADER, e.getMessageKey());
}
}
@@ -81,7 +81,7 @@ public class PreconditionsValidatorTest {
new PreconditionsValidator(new ETagSupport("ESKeyNav"), uriInfo, null, null).validatePreconditions(false);
fail("Expected a PreconditionRequiredException but was not thrown");
} catch (PreconditionRequiredException e) {
- assertEquals(PreconditionRequiredException.MessageKeys.PRECONDITION_REQUIRED, e.getMessageKey());
+ assertEquals(PreconditionRequiredException.MessageKeys.MISSING_HEADER, e.getMessageKey());
}
}
@@ -92,7 +92,7 @@ public class PreconditionsValidatorTest {
new PreconditionsValidator(new ETagSupport(), uriInfo, null, null).validatePreconditions(true);
fail("Expected a PreconditionRequiredException but was not thrown");
} catch (PreconditionRequiredException e) {
- assertEquals(PreconditionRequiredException.MessageKeys.PRECONDITION_REQUIRED, e.getMessageKey());
+ assertEquals(PreconditionRequiredException.MessageKeys.MISSING_HEADER, e.getMessageKey());
}
}
@@ -103,7 +103,7 @@ public class PreconditionsValidatorTest {
new PreconditionsValidator(new ETagSupport(), uriInfo, null, null).validatePreconditions(false);
fail("Expected a PreconditionRequiredException but was not thrown");
} catch (PreconditionRequiredException e) {
- assertEquals(PreconditionRequiredException.MessageKeys.PRECONDITION_REQUIRED, e.getMessageKey());
+ assertEquals(PreconditionRequiredException.MessageKeys.MISSING_HEADER, e.getMessageKey());
}
}