diff --git a/qa/rolling-upgrade/src/test/java/org/opensearch/knn/bwc/AbstractRollingUpgradeTestCase.java b/qa/rolling-upgrade/src/test/java/org/opensearch/knn/bwc/AbstractRollingUpgradeTestCase.java index 9f54fe3ef..db5973ddd 100644 --- a/qa/rolling-upgrade/src/test/java/org/opensearch/knn/bwc/AbstractRollingUpgradeTestCase.java +++ b/qa/rolling-upgrade/src/test/java/org/opensearch/knn/bwc/AbstractRollingUpgradeTestCase.java @@ -71,7 +71,10 @@ public static ClusterType instance(String value) { } protected final ClusterType getClusterType() { - return ClusterType.instance(System.getProperty(BWCSUITE_CLUSTER)); + if (System.getProperty(BWCSUITE_CLUSTER) != null) { + return ClusterType.instance(System.getProperty(BWCSUITE_CLUSTER)); + } + throw new IllegalArgumentException(String.format("[%s] value is null", BWCSUITE_CLUSTER)); } protected final boolean isFirstMixedRound() { diff --git a/src/main/java/org/opensearch/knn/indices/ModelDao.java b/src/main/java/org/opensearch/knn/indices/ModelDao.java index 1d88c9a00..c1440f856 100644 --- a/src/main/java/org/opensearch/knn/indices/ModelDao.java +++ b/src/main/java/org/opensearch/knn/indices/ModelDao.java @@ -466,7 +466,13 @@ public ModelMetadata getMetadata(String modelId) { } private String getMapping() throws IOException { - URL url = ModelDao.class.getClassLoader().getResource(MODEL_INDEX_MAPPING_PATH); + URL url = null; + if (ModelDao.class.getClassLoader() != null) { + url = ModelDao.class.getClassLoader().getResource(MODEL_INDEX_MAPPING_PATH); + } else { + throw new IllegalArgumentException("ClassLoader of ModelDao Class is null"); + } + if (url == null) { throw new IllegalStateException("Unable to retrieve mapping for \"" + MODEL_INDEX_NAME + "\""); } diff --git a/src/test/java/org/opensearch/knn/index/FaissIT.java b/src/test/java/org/opensearch/knn/index/FaissIT.java index 9da067fde..44c6f41d4 100644 --- a/src/test/java/org/opensearch/knn/index/FaissIT.java +++ b/src/test/java/org/opensearch/knn/index/FaissIT.java @@ -66,11 +66,15 @@ public class FaissIT extends KNNRestTestCase { @BeforeClass public static void setUpClass() throws IOException { - URL testIndexVectors = FaissIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); - URL testQueries = FaissIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); - assert testIndexVectors != null; - assert testQueries != null; - testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + if (FaissIT.class.getClassLoader() != null) { + URL testIndexVectors = FaissIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); + URL testQueries = FaissIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); + assert testIndexVectors != null; + assert testQueries != null; + testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + } else { + throw new IllegalArgumentException("ClassLoader of FaissIT Class is null"); + } } @SneakyThrows diff --git a/src/test/java/org/opensearch/knn/index/NmslibIT.java b/src/test/java/org/opensearch/knn/index/NmslibIT.java index 87bbe588f..504db33a2 100644 --- a/src/test/java/org/opensearch/knn/index/NmslibIT.java +++ b/src/test/java/org/opensearch/knn/index/NmslibIT.java @@ -44,11 +44,15 @@ public class NmslibIT extends KNNRestTestCase { @BeforeClass public static void setUpClass() throws IOException { - URL testIndexVectors = FaissIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); - URL testQueries = FaissIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); - assert testIndexVectors != null; - assert testQueries != null; - testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + if (NmslibIT.class.getClassLoader() != null) { + URL testIndexVectors = NmslibIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); + URL testQueries = NmslibIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); + assert testIndexVectors != null; + assert testQueries != null; + testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + } else { + throw new IllegalArgumentException("ClassLoader of NmslibIT Class is null"); + } } public void testEndToEnd() throws Exception { diff --git a/src/test/java/org/opensearch/knn/index/OpenSearchIT.java b/src/test/java/org/opensearch/knn/index/OpenSearchIT.java index 4130e2df5..4f4d50208 100644 --- a/src/test/java/org/opensearch/knn/index/OpenSearchIT.java +++ b/src/test/java/org/opensearch/knn/index/OpenSearchIT.java @@ -47,11 +47,15 @@ public class OpenSearchIT extends KNNRestTestCase { @BeforeClass public static void setUpClass() throws IOException { - URL testIndexVectors = FaissIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); - URL testQueries = FaissIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); - assert testIndexVectors != null; - assert testQueries != null; - testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + if (OpenSearchIT.class.getClassLoader() != null) { + URL testIndexVectors = OpenSearchIT.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); + URL testQueries = OpenSearchIT.class.getClassLoader().getResource("data/test_queries_100x128.csv"); + assert testIndexVectors != null; + assert testQueries != null; + testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + } else { + throw new IllegalArgumentException("ClassLoader of OpenSearchIT Class is null"); + } } public void testEndToEnd() throws Exception { diff --git a/src/test/java/org/opensearch/knn/jni/JNIServiceTests.java b/src/test/java/org/opensearch/knn/jni/JNIServiceTests.java index 8e3382ece..80aece58e 100644 --- a/src/test/java/org/opensearch/knn/jni/JNIServiceTests.java +++ b/src/test/java/org/opensearch/knn/jni/JNIServiceTests.java @@ -65,14 +65,18 @@ public class JNIServiceTests extends KNNTestCase { @BeforeClass public static void setUpClass() throws IOException { - URL testIndexVectors = JNIServiceTests.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); - URL testIndexVectorsNested = JNIServiceTests.class.getClassLoader().getResource("data/test_vectors_nested_1000x128.json"); - URL testQueries = JNIServiceTests.class.getClassLoader().getResource("data/test_queries_100x128.csv"); - assert testIndexVectors != null; - assert testIndexVectorsNested != null; - assert testQueries != null; - testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); - testDataNested = new TestUtils.TestData(testIndexVectorsNested.getPath(), testQueries.getPath()); + if (JNIServiceTests.class.getClassLoader() != null) { + URL testIndexVectors = JNIServiceTests.class.getClassLoader().getResource("data/test_vectors_1000x128.json"); + URL testIndexVectorsNested = JNIServiceTests.class.getClassLoader().getResource("data/test_vectors_nested_1000x128.json"); + URL testQueries = JNIServiceTests.class.getClassLoader().getResource("data/test_queries_100x128.csv"); + assert testIndexVectors != null; + assert testIndexVectorsNested != null; + assert testQueries != null; + testData = new TestUtils.TestData(testIndexVectors.getPath(), testQueries.getPath()); + testDataNested = new TestUtils.TestData(testIndexVectorsNested.getPath(), testQueries.getPath()); + } else { + throw new IllegalArgumentException("ClassLoader of JNIServiceTests Class is null"); + } } public void testCreateIndex_invalid_engineNotSupported() { diff --git a/src/testFixtures/java/org/opensearch/knn/KNNRestTestCase.java b/src/testFixtures/java/org/opensearch/knn/KNNRestTestCase.java index 1d984927f..eb01d3d92 100644 --- a/src/testFixtures/java/org/opensearch/knn/KNNRestTestCase.java +++ b/src/testFixtures/java/org/opensearch/knn/KNNRestTestCase.java @@ -121,19 +121,24 @@ public static void dumpCoverage() throws IOException, MalformedObjectNameExcepti } String serverUrl = System.getProperty("jmx.serviceUrl"); - try (JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(serverUrl))) { - IProxy proxy = MBeanServerInvocationHandler.newProxyInstance( - connector.getMBeanServerConnection(), - new ObjectName("org.jacoco:type=Runtime"), - IProxy.class, - false - ); - - Path path = Path.of(jacocoBuildPath, "integTest.exec"); - Files.write(path, proxy.getExecutionData(false)); - } catch (Exception ex) { - log.error("Failed to dump coverage: ", ex); - throw new RuntimeException("Failed to dump coverage: " + ex); + if (serverUrl != null) { + try (JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL(serverUrl))) { + IProxy proxy = MBeanServerInvocationHandler.newProxyInstance( + connector.getMBeanServerConnection(), + new ObjectName("org.jacoco:type=Runtime"), + IProxy.class, + false + ); + + Path path = Path.of(Path.of(jacocoBuildPath, "integTest.exec").toFile().getCanonicalPath()); + Files.write(path, proxy.getExecutionData(false)); + } catch (Exception ex) { + log.error("Failed to dump coverage: ", ex); + throw new RuntimeException("Failed to dump coverage: " + ex); + } + } else { + log.error("Failed to dump coverage because JMX Service URL is null"); + throw new IllegalArgumentException("JMX Service URL is null"); } }