You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/09/08 14:26:45 UTC
(maven-shared-io) 01/02: Fix null context class loader handling
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-shared-io.git
commit 0674862474efdf593f449b069046d4a196f1e0a0
Author: Aayush Tiwari <aa...@gmail.com>
AuthorDate: Sun Jul 5 20:27:03 2026 +0530
Fix null context class loader handling
---
.../io/location/ClasspathResourceLocatorStrategy.java | 2 +-
.../location/ClasspathResourceLocatorStrategyTest.java | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategy.java b/src/main/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategy.java
index aace0b6..a0a5562 100644
--- a/src/main/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategy.java
+++ b/src/main/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategy.java
@@ -55,7 +55,7 @@ public class ClasspathResourceLocatorStrategy implements LocatorStrategy {
public Location resolve(String locationSpecification, MessageHolder messageHolder) {
ClassLoader cloader = Thread.currentThread().getContextClassLoader();
- URL resource = cloader.getResource(locationSpecification);
+ URL resource = cloader != null ? cloader.getResource(locationSpecification) : null;
Location location = null;
diff --git a/src/test/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategyTest.java b/src/test/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategyTest.java
index fd18b0b..d4fb3ad 100644
--- a/src/test/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategyTest.java
+++ b/src/test/java/org/apache/maven/shared/io/location/ClasspathResourceLocatorStrategyTest.java
@@ -47,6 +47,23 @@ class ClasspathResourceLocatorStrategyTest {
assertEquals(1, mh.size());
}
+ @Test
+ void shouldFailToResolveWhenContextClassLoaderIsNull() {
+ Thread thread = Thread.currentThread();
+ ClassLoader contextClassLoader = thread.getContextClassLoader();
+ MessageHolder mh = new DefaultMessageHolder();
+
+ try {
+ thread.setContextClassLoader(null);
+ Location location = new ClasspathResourceLocatorStrategy().resolve("META-INF/maven/test.properties", mh);
+
+ assertNull(location);
+ assertEquals(1, mh.size());
+ } finally {
+ thread.setContextClassLoader(contextClassLoader);
+ }
+ }
+
@Test
void shouldResolveExistingClasspathResourceWithoutPrecedingSlash() {
MessageHolder mh = new DefaultMessageHolder();