X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Frest%2FHttpResultSet.java;h=8414da5d78ac2a17eda45752462f9b06d1c49f3d;hb=80238b0ded8d29f9f50399c51bc550bc1df9c426;hp=5bfe3b5fe9636b5c034b0584029b9ad881567966;hpb=d4589ccc189ff8053095c36f77c262728ff46cfe;p=jalview.git diff --git a/src/jalview/ws/rest/HttpResultSet.java b/src/jalview/ws/rest/HttpResultSet.java index 5bfe3b5..8414da5 100644 --- a/src/jalview/ws/rest/HttpResultSet.java +++ b/src/jalview/ws/rest/HttpResultSet.java @@ -40,9 +40,9 @@ import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.entity.mime.MultipartEntity; +import org.apache.http.util.EntityUtils; import org.apache.james.mime4j.MimeException; import org.apache.james.mime4j.parser.MimeStreamParser; - /** * data source instantiated from the response of an httpclient request. * @@ -116,23 +116,22 @@ public class HttpResultSet extends FileParse implements AutoCloseable } jalview.io.packed.JalviewDataset ds = restJob.newJalviewDataset(); // Decide how we deal with content. - if (en instanceof MultipartEntity) + // TODO : verify we are detecting a multipart response correctly + if (en.getContentType().getValue().startsWith("multipart/form-data")) { // Multipart messages should be properly typed, so we parse them as we go. - MultipartEntity mpe = (MultipartEntity) en; - // multipart JalviewMimeContentHandler handler = new JalviewMimeContentHandler(ds); MimeStreamParser parser = new MimeStreamParser(); parser.setContentHandler(handler); try { - parser.parse(mpe.getContent()); + parser.parse(en.getContent()); } catch (MimeException me) { error = true; errormessage = "Couldn't parse message from web service."; Cache.log.warn("Failed to parse MIME multipart content", me); - en.consumeContent(); + EntityUtils.consume(en); } return new ParsePackedSet().getAlignment(ds, handler.getJalviewDataProviders()); @@ -186,7 +185,7 @@ public class HttpResultSet extends FileParse implements AutoCloseable { Cache.log.error("Can't handle encoding '" + enc + "' for response from webservice.", e); - en.consumeContent(); + EntityUtils.consume(en); error = true; errormessage = "Can't handle encoding for response from webservice"; return;