X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Frest%2FHttpResultSet.java;h=204e3eb618651ce04ac7c04ab07dc7f300555fdb;hb=d043ce47fc710d3eb2629ba926a8a7417bd67d8c;hp=4d5a2aab9b084e986d155952ca9b78b0803f5c7b;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/ws/rest/HttpResultSet.java b/src/jalview/ws/rest/HttpResultSet.java index 4d5a2aa..204e3eb 100644 --- a/src/jalview/ws/rest/HttpResultSet.java +++ b/src/jalview/ws/rest/HttpResultSet.java @@ -20,7 +20,7 @@ */ package jalview.ws.rest; -import jalview.bin.Cache; +import jalview.bin.Console; import jalview.io.FileParse; import jalview.io.packed.DataProvider; import jalview.io.packed.DataProvider.JvDataType; @@ -40,6 +40,7 @@ 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; @@ -50,7 +51,7 @@ import org.apache.james.mime4j.parser.MimeStreamParser; * */ -public class HttpResultSet extends FileParse +public class HttpResultSet extends FileParse implements AutoCloseable { private HttpRequestBase cachedRequest; @@ -89,7 +90,7 @@ public class HttpResultSet extends FileParse */ public List createResultDataProviders() { - List dp = new ArrayList(); + List dp = new ArrayList<>(); for (JvDataType type : restJob.rsd.getResultDataTypes()) { dp.add(new SimpleDataProvider(type, this, null)); @@ -106,7 +107,7 @@ public class HttpResultSet extends FileParse */ public Object[] parseResultSet() throws Exception, Error { - List dp = new ArrayList(); + List dp = new ArrayList<>(); Object[] results = null; if (en == null) @@ -116,23 +117,22 @@ public class HttpResultSet extends FileParse } 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(); + Console.warn("Failed to parse MIME multipart content", me); + EntityUtils.consume(en); } return new ParsePackedSet().getAlignment(ds, handler.getJalviewDataProviders()); @@ -158,19 +158,19 @@ public class HttpResultSet extends FileParse : en.getContentEncoding().getValue(); if (en.getContentType() != null) { - Cache.log.debug("Result Type: " + en.getContentType().toString()); + Console.debug("Result Type: " + en.getContentType().toString()); } else { - Cache.log.debug("No Result Type Specified."); + Console.debug("No Result Type Specified."); } if (enc == null || enc.length() < 1) { - Cache.log.debug("Assuming 'Default' Result Encoding."); + Console.debug("Assuming 'Default' Result Encoding."); } else { - Cache.log.debug("Result Encoded as : " + enc); + Console.debug("Result Encoded as : " + enc); } // attempt to identify file and construct an appropriate DataSource // identifier for it. @@ -184,9 +184,9 @@ public class HttpResultSet extends FileParse : new InputStreamReader(en.getContent()); } catch (UnsupportedEncodingException e) { - Cache.log.error("Can't handle encoding '" + enc + Console.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; @@ -200,7 +200,7 @@ public class HttpResultSet extends FileParse } @Override - protected void finalize() throws Throwable + public void close() { dataIn = null; cachedRequest = null; @@ -215,7 +215,8 @@ public class HttpResultSet extends FileParse } catch (Error ex) { } - super.finalize(); + // no finalize for FileParse + // super.close(); } /**