You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2016/01/21 23:18:09 UTC

olingo-odata4 git commit: OLINGO-854: The conversion of string to URI and from URI to string need to be correcty encoded and decoded, this fix addresses that

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 16d238f96 -> b5eae4f6c


OLINGO-854: The conversion of string to URI and from URI to string need to be correcty encoded and decoded, this fix addresses that


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

Branch: refs/heads/master
Commit: b5eae4f6c25d7735b39d5e445db9e45f4d99c5d3
Parents: 16d238f
Author: Ramesh Reddy <ra...@jboss.org>
Authored: Thu Jan 21 16:17:18 2016 -0600
Committer: Ramesh Reddy <ra...@jboss.org>
Committed: Thu Jan 21 16:17:18 2016 -0600

----------------------------------------------------------------------
 .../olingo/commons/core/edm/primitivetype/EdmString.java       | 6 ++++--
 .../olingo/commons/core/edm/primitivetype/EdmStringTest.java   | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/b5eae4f6/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmString.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmString.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmString.java
index 8e9a42a..a63010b 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmString.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/primitivetype/EdmString.java
@@ -21,6 +21,8 @@ package org.apache.olingo.commons.core.edm.primitivetype;
 import java.util.regex.Pattern;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
+import org.apache.olingo.commons.core.Decoder;
+import org.apache.olingo.commons.core.Encoder;
 
 /**
  * Implementation of the EDM primitive type String.
@@ -95,11 +97,11 @@ public final class EdmString extends SingletonPrimitiveType {
       uriLiteral.append(c);
     }
     uriLiteral.append(uriSuffix);
-    return uriLiteral.toString();
+    return Encoder.encode(uriLiteral.toString());
   }
 
   @Override
   public String fromUriLiteral(final String literal) throws EdmPrimitiveTypeException {
-    return literal == null ? null : super.fromUriLiteral(literal).replace("''", "'");
+    return literal == null ? null : Decoder.decode(super.fromUriLiteral(literal).replace("''", "'"));
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/b5eae4f6/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmStringTest.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmStringTest.java b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmStringTest.java
index b5f2a89..1035e6b 100644
--- a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmStringTest.java
+++ b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/primitivetype/EdmStringTest.java
@@ -33,11 +33,13 @@ public class EdmStringTest extends PrimitiveTypeBaseTest {
     assertEquals("'StringValue'", instance.toUriLiteral("StringValue"));
     assertEquals("'String''Value'", instance.toUriLiteral("String'Value"));
     assertEquals("'String''''''Value'", instance.toUriLiteral("String'''Value"));
+    assertEquals("'ab%20cd%20'", instance.toUriLiteral("ab cd "));
   }
 
   @Test
   public void fromUriLiteral() throws Exception {
     assertEquals("String''Value", instance.fromUriLiteral("'String''''Value'"));
+    assertEquals("ab cd ", instance.fromUriLiteral("'ab%20cd%20'"));
 
     expectErrorInFromUriLiteral(instance, "");
     expectErrorInFromUriLiteral(instance, "'");