You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2017/04/25 20:10:50 UTC
calcite git commit: [CALCITE-1752] Use URLDecoder to unwrap encoded
characters
Repository: calcite
Updated Branches:
refs/heads/master 2ce41591b -> 478de569c
[CALCITE-1752] Use URLDecoder to unwrap encoded characters
Closes #434
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/478de569
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/478de569
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/478de569
Branch: refs/heads/master
Commit: 478de569cf4b7084207b40ce957f47b6e8015fe7
Parents: 2ce4159
Author: Josh Elser <el...@apache.org>
Authored: Tue Apr 25 14:06:01 2017 -0400
Committer: Josh Elser <el...@apache.org>
Committed: Tue Apr 25 15:59:20 2017 -0400
----------------------------------------------------------------------
.../org/apache/calcite/sql/parser/SqlParserTest.java | 3 ++-
.../test/java/org/apache/calcite/test/CsvTest.java | 14 ++++++++++----
.../java/org/apache/calcite/test/PigAdapterTest.java | 13 ++++++++++++-
3 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/478de569/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
index 05089bf..40037cf 100644
--- a/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
+++ b/core/src/test/java/org/apache/calcite/sql/parser/SqlParserTest.java
@@ -49,6 +49,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
+import java.net.URLDecoder;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@@ -6910,7 +6911,7 @@ public class SqlParserTest {
String path = "hsqldb-model.json";
final URL inUrl = SqlParserTest.class.getResource("/" + path);
// URL will convert spaces to %20, undo that
- String x = inUrl.getFile().replace("%20", " ");
+ String x = URLDecoder.decode(inUrl.getFile(), "UTF-8");
assert x.endsWith(path);
x = x.substring(0, x.length() - path.length());
assert x.endsWith("core/target/test-classes/");
http://git-wip-us.apache.org/repos/asf/calcite/blob/478de569/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java
----------------------------------------------------------------------
diff --git a/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java b/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java
index 5d731d6..00c59ee 100644
--- a/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java
+++ b/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java
@@ -34,7 +34,9 @@ import org.junit.Test;
import java.io.File;
import java.io.PrintStream;
import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
import java.net.URL;
+import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
@@ -353,11 +355,15 @@ public class CsvTest {
private String resourcePath(String path) {
final URL url = CsvTest.class.getResource("/" + path);
// URL converts a space to %20, undo that.
- String s = url.toString().replace("%20", " ");
- if (s.startsWith("file:")) {
- s = s.substring("file:".length());
+ try {
+ String s = URLDecoder.decode(url.toString(), "UTF-8");
+ if (s.startsWith("file:")) {
+ s = s.substring("file:".length());
+ }
+ return s;
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
}
- return s;
}
private static void collect(List<String> result, ResultSet resultSet)
http://git-wip-us.apache.org/repos/asf/calcite/blob/478de569/pig/src/test/java/org/apache/calcite/test/PigAdapterTest.java
----------------------------------------------------------------------
diff --git a/pig/src/test/java/org/apache/calcite/test/PigAdapterTest.java b/pig/src/test/java/org/apache/calcite/test/PigAdapterTest.java
index 58adbe0..e02c90a 100644
--- a/pig/src/test/java/org/apache/calcite/test/PigAdapterTest.java
+++ b/pig/src/test/java/org/apache/calcite/test/PigAdapterTest.java
@@ -21,6 +21,8 @@ import com.google.common.collect.ImmutableMap;
import org.junit.Test;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -33,7 +35,16 @@ public class PigAdapterTest extends AbstractPigTest {
// Undo the %20 replacement of a space by URL
public static final ImmutableMap<String, String> MODEL =
ImmutableMap.of("model",
- PigAdapterTest.class.getResource("/model.json").getPath().replace("%20", " "));
+ decodeUrl(PigAdapterTest.class.getResource("/model.json").getPath()));
+
+ /** URL-decodes the given string with UTF-8 encoding */
+ private static String decodeUrl(String urlEncoded) {
+ try {
+ return URLDecoder.decode(urlEncoded, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
@Test
public void testScanAndFilter() throws Exception {