You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2020/05/12 02:01:58 UTC
[lucene-solr] branch branch_8x updated: SOLR-14266: Fix or suppress
14 resource leak warnings in apache/solr/core
This is an automated email from the ASF dual-hosted git repository.
erick pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new 6d3989c SOLR-14266: Fix or suppress 14 resource leak warnings in apache/solr/core
6d3989c is described below
commit 6d3989c98469b0b9325eca83f98f3cfc05931648
Author: Erick Erickson <Er...@gmail.com>
AuthorDate: Mon May 11 21:57:09 2020 -0400
SOLR-14266: Fix or suppress 14 resource leak warnings in apache/solr/core
---
solr/CHANGES.txt | 3 +
.../test/org/apache/solr/core/TestLazyCores.java | 71 ++++++++--------
.../repository/HdfsBackupRepositoryTest.java | 94 ++++++++++++----------
3 files changed, 92 insertions(+), 76 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index e48354e..8aeabb7 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -134,6 +134,9 @@ Other Changes
* SOLR-7880: Update commons-cli to 1.4 (Erick Erickson)
+* SOLR-14226Fix or suppress 14 resource leak warnings in apache/solr/core (Andras Salaman via
+ Erick Erickson)
+
================== 8.5.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
index 4120f3e..838ffdb 100644
--- a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
+++ b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
@@ -241,17 +241,18 @@ public class TestLazyCores extends SolrTestCaseJ4 {
checkNotInCores(cc, Arrays.asList("collection2", "collection3"));
// verify that getting metrics from an unloaded core doesn't cause exceptions (SOLR-12541)
- MetricsHandler handler = new MetricsHandler(h.getCoreContainer());
-
- SolrQueryResponse resp = new SolrQueryResponse();
- handler.handleRequest(makeReq(core1, CommonParams.QT, "/admin/metrics"), resp);
- NamedList values = resp.getValues();
- assertNotNull(values.get("metrics"));
- values = (NamedList) values.get("metrics");
- NamedList nl = (NamedList) values.get("solr.core.collection2");
- assertNotNull(nl);
- Object o = nl.get("REPLICATION./replication.indexPath");
- assertNotNull(o);
+ try (MetricsHandler handler = new MetricsHandler(h.getCoreContainer())) {
+
+ SolrQueryResponse resp = new SolrQueryResponse();
+ handler.handleRequest(makeReq(core1, CommonParams.QT, "/admin/metrics"), resp);
+ NamedList values = resp.getValues();
+ assertNotNull(values.get("metrics"));
+ values = (NamedList) values.get("metrics");
+ NamedList nl = (NamedList) values.get("solr.core.collection2");
+ assertNotNull(nl);
+ Object o = nl.get("REPLICATION./replication.indexPath");
+ assertNotNull(o);
+ }
// Note decrementing the count when the core is removed from the lazyCores list is appropriate, since the
@@ -361,28 +362,29 @@ public class TestLazyCores extends SolrTestCaseJ4 {
private void createViaAdmin(CoreContainer cc, String name, boolean isTransient,
boolean loadOnStartup) throws Exception {
- final CoreAdminHandler admin = new CoreAdminHandler(cc);
- SolrQueryResponse resp = new SolrQueryResponse();
- admin.handleRequestBody
- (req(CoreAdminParams.ACTION,
- CoreAdminParams.CoreAdminAction.CREATE.toString(),
- CoreAdminParams.NAME, name,
- CoreAdminParams.TRANSIENT, Boolean.toString(isTransient),
- CoreAdminParams.LOAD_ON_STARTUP, Boolean.toString(loadOnStartup)),
- resp);
+ try (final CoreAdminHandler admin = new CoreAdminHandler(cc)) {
+ SolrQueryResponse resp = new SolrQueryResponse();
+ admin.handleRequestBody
+ (req(CoreAdminParams.ACTION,
+ CoreAdminParams.CoreAdminAction.CREATE.toString(),
+ CoreAdminParams.NAME, name,
+ CoreAdminParams.TRANSIENT, Boolean.toString(isTransient),
+ CoreAdminParams.LOAD_ON_STARTUP, Boolean.toString(loadOnStartup)),
+ resp);
+ }
}
private void unloadViaAdmin(CoreContainer cc, String name) throws Exception {
- final CoreAdminHandler admin = new CoreAdminHandler(cc);
- SolrQueryResponse resp = new SolrQueryResponse();
- admin.handleRequestBody
- (req(CoreAdminParams.ACTION,
- CoreAdminParams.CoreAdminAction.UNLOAD.toString(),
- CoreAdminParams.CORE, name),
- resp);
-
+ try (final CoreAdminHandler admin = new CoreAdminHandler(cc)) {
+ SolrQueryResponse resp = new SolrQueryResponse();
+ admin.handleRequestBody
+ (req(CoreAdminParams.ACTION,
+ CoreAdminParams.CoreAdminAction.UNLOAD.toString(),
+ CoreAdminParams.CORE, name),
+ resp);
+ }
}
// Make sure that creating a transient core from the admin handler correctly respects the transient limits etc.
@@ -634,12 +636,13 @@ public class TestLazyCores extends SolrTestCaseJ4 {
// if ok==false, the core being examined should have a failure in the list.
private void checkStatus(CoreContainer cc, Boolean ok, String core) throws Exception {
SolrQueryResponse resp = new SolrQueryResponse();
- final CoreAdminHandler admin = new CoreAdminHandler(cc);
- admin.handleRequestBody
- (req(CoreAdminParams.ACTION,
- CoreAdminParams.CoreAdminAction.STATUS.toString(),
- CoreAdminParams.CORE, core),
- resp);
+ try (final CoreAdminHandler admin = new CoreAdminHandler(cc)) {
+ admin.handleRequestBody
+ (req(CoreAdminParams.ACTION,
+ CoreAdminParams.CoreAdminAction.STATUS.toString(),
+ CoreAdminParams.CORE, core),
+ resp);
+ }
Map<String, Exception> failures =
(Map<String, Exception>) resp.getValues().get("initFailures");
diff --git a/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryTest.java b/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryTest.java
index 0da02b0..398fb3b 100644
--- a/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryTest.java
+++ b/solr/core/src/test/org/apache/solr/core/backup/repository/HdfsBackupRepositoryTest.java
@@ -17,6 +17,8 @@
package org.apache.solr.core.backup.repository;
+import java.io.IOException;
+
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.core.HdfsDirectoryFactory;
@@ -28,68 +30,76 @@ import static org.junit.Assert.assertEquals;
public class HdfsBackupRepositoryTest {
@Test(expected = NullPointerException.class)
- public void testHdfsHomePropertyMissing() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- hdfsBackupRepository.init(namedList);
+ public void testHdfsHomePropertyMissing() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test
- public void testHdfsHomePropertySet() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
- hdfsBackupRepository.init(namedList);
+ public void testHdfsHomePropertySet() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test(expected = ClassCastException.class)
- public void testCopyBufferSizeNonNumeric() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add("solr.hdfs.buffer.size", "xyz");
- hdfsBackupRepository.init(namedList);
+ public void testCopyBufferSizeNonNumeric() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add("solr.hdfs.buffer.size", "xyz");
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test(expected = ClassCastException.class)
- public void testCopyBufferSizeWrongType() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add("solr.hdfs.buffer.size", "8192");
- hdfsBackupRepository.init(namedList);
+ public void testCopyBufferSizeWrongType() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add("solr.hdfs.buffer.size", "8192");
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test(expected = IllegalArgumentException.class)
- public void testCopyBufferSizeNegative() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add("solr.hdfs.buffer.size", -1);
- hdfsBackupRepository.init(namedList);
+ public void testCopyBufferSizeNegative() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add("solr.hdfs.buffer.size", -1);
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test(expected = IllegalArgumentException.class)
- public void testCopyBufferSizeZero() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add("solr.hdfs.buffer.size", 0);
- hdfsBackupRepository.init(namedList);
+ public void testCopyBufferSizeZero() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add("solr.hdfs.buffer.size", 0);
+ hdfsBackupRepository.init(namedList);
+ }
}
@Test
- public void testCopyBufferSet() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
- namedList.add("solr.hdfs.buffer.size", 32768);
- hdfsBackupRepository.init(namedList);
- assertEquals(hdfsBackupRepository.copyBufferSize, 32768);
+ public void testCopyBufferSet() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
+ namedList.add("solr.hdfs.buffer.size", 32768);
+ hdfsBackupRepository.init(namedList);
+ assertEquals(hdfsBackupRepository.copyBufferSize, 32768);
+ }
}
@Test
- public void testCopyBufferDefaultSize() {
- HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository();
- NamedList<Object> namedList = new SimpleOrderedMap<>();
- namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
- hdfsBackupRepository.init(namedList);
- assertEquals(hdfsBackupRepository.copyBufferSize, HdfsDirectory.DEFAULT_BUFFER_SIZE);
+ public void testCopyBufferDefaultSize() throws IOException {
+ try (HdfsBackupRepository hdfsBackupRepository = new HdfsBackupRepository()) {
+ NamedList<Object> namedList = new SimpleOrderedMap<>();
+ namedList.add(HdfsDirectoryFactory.HDFS_HOME, "hdfs://localhost");
+ hdfsBackupRepository.init(namedList);
+ assertEquals(hdfsBackupRepository.copyBufferSize, HdfsDirectory.DEFAULT_BUFFER_SIZE);
+ }
}
}