Skip to content

Commit f1b8b21

Browse files
Viacheslav Tykhanovskyivti
authored andcommitted
Handle the situation when context class loader is null
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:?]
1 parent 4ac0fbd commit f1b8b21

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)