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

Reply via email to