AMBARI-18584 : Ignoring objects of type InputStream from conversion in GsonJsonProvider. This resolves the bug where in files with extension .json were not uploading (nitirajrathore)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f1117c25 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f1117c25 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f1117c25 Branch: refs/heads/branch-feature-AMBARI-18634 Commit: f1117c25dcfe1e55e935cf641c1399b12e5846bc Parents: e5a6ee8 Author: Nitiraj Rathore <[email protected]> Authored: Thu Nov 3 15:22:54 2016 +0530 Committer: Nitiraj Rathore <[email protected]> Committed: Thu Nov 3 15:22:54 2016 +0530 ---------------------------------------------------------------------- .../org/apache/ambari/server/api/GsonJsonProvider.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/f1117c25/ambari-server/src/main/java/org/apache/ambari/server/api/GsonJsonProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/GsonJsonProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/api/GsonJsonProvider.java index 8ba9ff7..e793957 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/GsonJsonProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/GsonJsonProvider.java @@ -32,7 +32,13 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.MessageBodyReader; import javax.ws.rs.ext.MessageBodyWriter; import javax.ws.rs.ext.Provider; -import java.io.*; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.Reader; +import java.io.Writer; import java.lang.annotation.Annotation; import java.lang.reflect.Type; @@ -55,6 +61,10 @@ public class GsonJsonProvider implements MessageBodyReader<Object>, @Override public Object readFrom(Class<Object> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException, WebApplicationException { + // ignore objects of type InputStream. Used in case of file uploads + if(type.equals(InputStream.class)) + return entityStream; + Reader reader = new InputStreamReader(entityStream); try { return gson.fromJson(reader, genericType);
