You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by xy...@apache.org on 2018/05/07 20:35:52 UTC
[27/35] hadoop git commit: HADOOP-14841 Kms client should disconnect
if unable to get output stream from connection. Contributed by Rushabh S Shah
HADOOP-14841 Kms client should disconnect if unable to get output stream from connection. Contributed by Rushabh S Shah
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4cdbdce7
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4cdbdce7
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4cdbdce7
Branch: refs/heads/HDDS-4
Commit: 4cdbdce752e192b45c2b9756c2d4bd24ceffdabd
Parents: 96c843f
Author: Rushabh Shah <sh...@apache.org>
Authored: Fri May 4 15:36:13 2018 -0500
Committer: Rushabh Shah <sh...@apache.org>
Committed: Fri May 4 15:36:13 2018 -0500
----------------------------------------------------------------------
.../hadoop/crypto/key/kms/KMSClientProvider.java | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/4cdbdce7/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
index f97fde7..45097ef 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/key/kms/KMSClientProvider.java
@@ -447,12 +447,21 @@ public class KMSClientProvider extends KeyProvider implements CryptoExtension,
int expectedResponse, Class<T> klass, int authRetryCount)
throws IOException {
T ret = null;
+ OutputStream os = null;
try {
if (jsonOutput != null) {
- writeJson(jsonOutput, conn.getOutputStream());
+ os = conn.getOutputStream();
+ writeJson(jsonOutput, os);
}
} catch (IOException ex) {
- IOUtils.closeStream(conn.getInputStream());
+ // The payload is not serialized if getOutputStream fails.
+ // Calling getInputStream will issue the put/post request with no payload
+ // which causes HTTP 500 server error.
+ if (os == null) {
+ conn.disconnect();
+ } else {
+ IOUtils.closeStream(conn.getInputStream());
+ }
throw ex;
}
if ((conn.getResponseCode() == HttpURLConnection.HTTP_FORBIDDEN
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org