Repository: olingo-odata4 Updated Branches: refs/heads/master a604fa78f -> c35076fbe
[OLINGO-663] Default metadata etag generation fix ETag value based on nano seconds will always be 14 characters long from now on. Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c35076fb Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c35076fb Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c35076fb Branch: refs/heads/master Commit: c35076fbe9ca77a1f441a5dfb36a817af0c1d31d Parents: a604fa7 Author: Christian Amend <[email protected]> Authored: Mon Jun 8 14:14:42 2015 +0200 Committer: Christian Amend <[email protected]> Committed: Mon Jun 8 14:14:42 2015 +0200 ---------------------------------------------------------------------- .../olingo/fit/tecsvc/client/BatchClientITCase.java | 10 +++++----- .../olingo/fit/tecsvc/http/BasicBatchITCase.java | 2 +- .../apache/olingo/server/tecsvc/TechnicalServlet.java | 14 +++++++++++++- 3 files changed, 19 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java index 932f9b1..7be6ab6 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/client/BatchClientITCase.java @@ -170,7 +170,7 @@ public class BatchClientITCase extends AbstractTestITCase { assertEquals(1, oDataResonse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResonse.getHeader("Content-Length").size()); - assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]); + assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]); assertEquals("application/json;odata.metadata=minimal", oDataResonse.getContentType()); } @@ -202,7 +202,7 @@ public class BatchClientITCase extends AbstractTestITCase { assertEquals(1, oDataResonse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResonse.getHeader("Content-Length").size()); - assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]); + assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]); assertEquals("application/json;odata.metadata=minimal", oDataResonse.getContentType()); } @@ -234,7 +234,7 @@ public class BatchClientITCase extends AbstractTestITCase { assertEquals(1, oDataResonse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResonse.getHeader("Content-Length").size()); - assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]); + assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]); assertEquals("application/json;odata.metadata=minimal", oDataResonse.getContentType()); // Check second get request @@ -334,7 +334,7 @@ public class BatchClientITCase extends AbstractTestITCase { assertEquals(1, oDataResonse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResonse.getHeader("Content-Length").size()); - assertEquals("582", oDataResonse.getHeader("Content-Length").toArray()[0]); + assertEquals("583", oDataResonse.getHeader("Content-Length").toArray()[0]); assertEquals("application/json;odata.metadata=minimal", oDataResonse.getContentType()); // Check second get request @@ -357,7 +357,7 @@ public class BatchClientITCase extends AbstractTestITCase { assertEquals(1, oDataResonse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResonse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResonse.getHeader("Content-Length").size()); - assertEquals("490", oDataResonse.getHeader("Content-Length").toArray()[0]); + assertEquals("491", oDataResonse.getHeader("Content-Length").toArray()[0]); assertEquals("application/json;odata.metadata=minimal", oDataResonse.getContentType()); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java index 3964d3b..c434703 100644 --- a/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/tecsvc/http/BasicBatchITCase.java @@ -60,7 +60,7 @@ public class BasicBatchITCase extends AbstractBaseTestITCase { assertEquals("HTTP/1.1 200 OK", reader.readLine()); assertEquals("OData-Version: 4.0", reader.readLine()); assertEquals("Content-Type: application/json;odata.metadata=minimal", reader.readLine()); - assertEquals("Content-Length: 582", reader.readLine()); + assertEquals("Content-Length: 583", reader.readLine()); blankLine(reader); reader.close(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c35076fb/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java index 349af30..40433f3 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/TechnicalServlet.java @@ -56,7 +56,7 @@ public class TechnicalServlet extends HttpServlet { * therefore any change must be deployed, resulting in re-loading of this class, * giving this field a new and hopefully unique value.</p> */ - private static final String metadataETag = "W/\"" + System.nanoTime() + "\""; + private static final String metadataETag = getETag(); @Override protected void service(final HttpServletRequest request, final HttpServletResponse response) @@ -89,4 +89,16 @@ public class TechnicalServlet extends HttpServlet { throw new ServletException(e); } } + + private static String getETag() { + String time = "" + System.nanoTime(); + if (time.length() > 14) { + time = time.substring(0, 14); + } else { + while (time.length() < 14) { + time = "0" + time; + } + } + return "W/\"" + time + "\""; + } }
