Repository: sqoop Updated Branches: refs/heads/sqoop2 1b9f7b116 -> 57b97ee1b
SQOOP-2551: Sqoop2: Explicit encode data sent in SqoopClient with charset (Dian Fu via Jarek Jarcec Cecho) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/57b97ee1 Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/57b97ee1 Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/57b97ee1 Branch: refs/heads/sqoop2 Commit: 57b97ee1b0bac249ba5e86091c374a0492584901 Parents: 1b9f7b1 Author: Jarek Jarcec Cecho <[email protected]> Authored: Mon Sep 7 15:26:58 2015 +0200 Committer: Jarek Jarcec Cecho <[email protected]> Committed: Mon Sep 7 15:26:58 2015 +0200 ---------------------------------------------------------------------- .../apache/sqoop/client/request/ResourceRequest.java | 12 +++++++----- .../org/apache/sqoop/common/SqoopProtocolConstants.java | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/57b97ee1/client/src/main/java/org/apache/sqoop/client/request/ResourceRequest.java ---------------------------------------------------------------------- diff --git a/client/src/main/java/org/apache/sqoop/client/request/ResourceRequest.java b/client/src/main/java/org/apache/sqoop/client/request/ResourceRequest.java index 1d41183..3deb135 100644 --- a/client/src/main/java/org/apache/sqoop/client/request/ResourceRequest.java +++ b/client/src/main/java/org/apache/sqoop/client/request/ResourceRequest.java @@ -52,7 +52,7 @@ public class ResourceRequest { /** * Charset used for Sqoop 2 protocol */ - private static final Charset CHARSET = Charset.forName("UTF-8"); + private static final Charset CHARSET = Charset.forName(SqoopProtocolConstants.charset); private static final Logger LOG = Logger.getLogger(ResourceRequest.class); private DelegationTokenAuthenticatedURL.Token authToken; @@ -64,11 +64,12 @@ public class ResourceRequest { public ResourceRequest(DelegationTokenAuthenticatedURL.Token token) { this.authToken = token == null ? new DelegationTokenAuthenticatedURL.Token() : token; } - protected String doHttpRequest(String strURL, String method) { + + private String doHttpRequest(String strURL, String method) { return doHttpRequest(strURL, method, ""); } - protected String doHttpRequest(String strURL, String method, String data) { + private String doHttpRequest(String strURL, String method, String data) { DataOutputStream wr = null; BufferedReader reader = null; try { @@ -85,10 +86,11 @@ public class ResourceRequest { if (method.equalsIgnoreCase(HttpMethod.PUT) || method.equalsIgnoreCase(HttpMethod.POST)) { conn.setDoOutput(true); data = data == null ? "" : data; - conn.setRequestProperty("Content-Length", Integer.toString(data.getBytes(CHARSET).length)); + byte[] dataBytes = data.getBytes(CHARSET); + conn.setRequestProperty("Content-Length", Integer.toString(dataBytes.length)); // Send request wr = new DataOutputStream(conn.getOutputStream()); - wr.writeBytes(data); + wr.write(dataBytes); wr.flush(); wr.close(); } http://git-wip-us.apache.org/repos/asf/sqoop/blob/57b97ee1/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java ---------------------------------------------------------------------- diff --git a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java index 72b5d87..29927c0 100644 --- a/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java +++ b/common/src/main/java/org/apache/sqoop/common/SqoopProtocolConstants.java @@ -33,8 +33,10 @@ public final class SqoopProtocolConstants { public static final String HEADER_SQOOP_INTERNAL_ERROR_MESSAGE = "sqoop-internal-error-message"; + public static final String charset = "UTF-8"; + public static final String JSON_CONTENT_TYPE = - "application/json; charset=\"UTF-8\""; + "application/json; charset=\"" + charset + "\""; private SqoopProtocolConstants() { // Disable explicit object creation
