Skip to content

Commit 30d4b4b

Browse files
vtiViacheslav Tykhanovskyi
andauthored
Handle the situation when context class loader is null (#490)
This fixes the errors when trying to load classpath references, like: Caused by: java.lang.NullPointerException at com.networknt.schema.uri.ClasspathURLStreamHandler$ClassPathURLConnection.getResourceAsStream(ClasspathURLStreamHandler.java:83) ~[amcrm-1.0-SNAPSHOT.jar:?] at com.networknt.schema.uri.ClasspathURLStreamHandler$ClassPathURLConnection.getInputStream(ClasspathURLStreamHandler.java:69) ~[amcrm-1.0-SNAPSHOT.jar:?] at java.net.URL.openStream(URL.java:1165) ~[?:?] at com.networknt.schema.uri.ClasspathURLFetcher.fetch(ClasspathURLFetcher.java:39) ~[amcrm-1.0-SNAPSHOT.jar:?] at com.networknt.schema.uri.URISchemeFetcher.fetch(URISchemeFetcher.java:50) ~[amcrm-1.0-SNAPSHOT.jar:?] at com.networknt.schema.JsonSchemaFactory.getSchema(JsonSchemaFactory.java:351) ~[amcrm-1.0-SNAPSHOT.jar:?] at com.networknt.schema.RefValidator.getRefSchema(RefValidator.java:82) ~[amcrm-1.0-SNAPSHOT.jar:?] at com.networknt.schema.RefValidator.<init>(RefValidator.java:45) ~[amcrm-1.0-SNAPSHOT.jar:?] Co-authored-by: Viacheslav Tykhanovskyi <[email protected]>
1 parent 4ac0fbd commit 30d4b4b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/main/java/com/networknt/schema/uri/ClasspathURLStreamHandler.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,14 @@ private InputStream getResourceAsStream(URL pURL) throws IOException {
7676
path = path.substring(1);
7777
}
7878

79-
InputStream stream;
79+
InputStream stream = null;
8080
if (mHost != null) {
8181
stream = mHost.getClassLoader().getResourceAsStream(path);
8282
} else {
83-
stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
83+
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
84+
if (contextClassLoader != null) {
85+
stream = contextClassLoader.getResourceAsStream(path);
86+
}
8487
if (stream == null) {
8588
stream = getClass().getClassLoader().getResourceAsStream(path);
8689
}
@@ -96,4 +99,4 @@ private InputStream getResourceAsStream(URL pURL) throws IOException {
9699
}
97100

98101

99-
}
102+
}

0 commit comments

Comments
 (0)