From bb29c9cd2abd7574d96c7b1e08e68ede57dad856 Mon Sep 17 00:00:00 2001 From: Noble Paul Date: Mon, 6 Apr 2015 04:51:58 +0000 Subject: [PATCH] SOLR-7168: Close stream aftyer reading it git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1671481 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/solr/core/RequestParams.java | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/core/RequestParams.java b/solr/core/src/java/org/apache/solr/core/RequestParams.java index aae2a0b804d..32f8d804703 100644 --- a/solr/core/src/java/org/apache/solr/core/RequestParams.java +++ b/solr/core/src/java/org/apache/solr/core/RequestParams.java @@ -21,10 +21,13 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import org.apache.solr.cloud.ZkSolrResourceLoader; import org.apache.solr.common.SolrException; @@ -174,27 +177,23 @@ public class RequestParams implements MapSerializable { private static Object[] getMapAndVersion(SolrResourceLoader loader, String name) { - InputStream in = null; - try { - in = loader.openResource(name); + try (InputStream in = loader.openResource(name)) { + int version = 0; //will be always 0 for file based resourceloader + if (in instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) { + version = ((ZkSolrResourceLoader.ZkByteArrayInputStream) in).getStat().getVersion(); + log.info("conf resource {} loaded . version : {} ", name, version); + } + try { + Map m = (Map) ObjectBuilder.getVal(new JSONParser(new InputStreamReader(in, StandardCharsets.UTF_8))); + return new Object[]{m, version}; + } catch (IOException e) { + throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error parsing conf resource " + name, e); + } + } catch (IOException e) { //no problem no overlay.json file return new Object[]{Collections.EMPTY_MAP, -1}; } - - int version = 0; //will be always 0 for file based resourceloader - if (in instanceof ZkSolrResourceLoader.ZkByteArrayInputStream) { - version = ((ZkSolrResourceLoader.ZkByteArrayInputStream) in).getStat().getVersion(); - log.info("conf resource {} loaded . version : {} ", name, version); - } - - try { - Map m = (Map) ObjectBuilder.getVal(new JSONParser(new InputStreamReader(in, StandardCharsets.UTF_8))); - return new Object[]{m, version}; - } catch (IOException e) { - throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error parsing conf resource " + name, e); - } - }