This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push:
new fd6fbe280 Return "null"" instead of NPE in
ClassLoaderUtils.toString(URLClassLoader)
fd6fbe280 is described below
commit fd6fbe280d90338f640c5acc92bec12e36f6d6c3
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Sep 20 09:59:16 2023 -0400
Return "null"" instead of NPE in
ClassLoaderUtils.toString(URLClassLoader)
Return "null"" instead of NPE in ClassLoaderUtils.toString(ClassLoader)
---
src/changes/changes.xml | 2 ++
src/main/java/org/apache/commons/lang3/ClassLoaderUtils.java | 5 +++--
src/test/java/org/apache/commons/lang3/ClassLoaderUtilsTest.java | 3 +++
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 32a259509..d3f5b6e47 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -56,6 +56,8 @@ The <action> type attribute can be add,update,fix,remove.
<action type="fix" dev="ggregory"
due-to="hduelme">Improve performance of StringUtils.isMixedCase()
#1096.</action>
<action issue="LANG-1706" type="fix" dev="ggregory" due-to="Alberto
Fernández">ThreadUtils find methods should not return null items #1098.</action>
<action issue="LANG-1710" type="fix" dev="ggregory" due-to="Shashank
Sharma, Gary Gregory, Oksana">ReflectionToStringBuilder changes in version
3.13.0 has broken the logic for overriding classes.</action>
+ <action type="fix" dev="ggregory" due-to="Gary
Gregory">Return "null"" instead of NPE in
ClassLoaderUtils.toString(ClassLoader).</action>
+ <action type="fix" dev="ggregory" due-to="Gary
Gregory">Return "null"" instead of NPE in
ClassLoaderUtils.toString(URLClassLoader).</action>
<!-- ADD -->
<action type="add" dev="ggregory" due-to="Rob Spoor,
Gary Gregory">Add Functions#function(Function).</action>
<action type="add" dev="ggregory" due-to="Rob Spoor,
Gary Gregory">Add FailableFunction#function(FailableFunction).</action>
diff --git a/src/main/java/org/apache/commons/lang3/ClassLoaderUtils.java
b/src/main/java/org/apache/commons/lang3/ClassLoaderUtils.java
index dda4828a2..a7cff3693 100644
--- a/src/main/java/org/apache/commons/lang3/ClassLoaderUtils.java
+++ b/src/main/java/org/apache/commons/lang3/ClassLoaderUtils.java
@@ -20,6 +20,7 @@ package org.apache.commons.lang3;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
+import java.util.Objects;
/**
* Helps work with {@link ClassLoader}.
@@ -64,7 +65,7 @@ public class ClassLoaderUtils {
if (classLoader instanceof URLClassLoader) {
return toString((URLClassLoader) classLoader);
}
- return classLoader.toString();
+ return Objects.toString(classLoader);
}
/**
@@ -74,6 +75,6 @@ public class ClassLoaderUtils {
* @return the formatted string.
*/
public static String toString(final URLClassLoader classLoader) {
- return classLoader + Arrays.toString(classLoader.getURLs());
+ return classLoader != null ? classLoader +
Arrays.toString(classLoader.getURLs()) : "null";
}
}
diff --git a/src/test/java/org/apache/commons/lang3/ClassLoaderUtilsTest.java
b/src/test/java/org/apache/commons/lang3/ClassLoaderUtilsTest.java
index b51ed3635..157745ec2 100644
--- a/src/test/java/org/apache/commons/lang3/ClassLoaderUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ClassLoaderUtilsTest.java
@@ -17,6 +17,7 @@
package org.apache.commons.lang3;
+import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.io.IOException;
@@ -51,6 +52,7 @@ public class ClassLoaderUtilsTest extends AbstractLangTest {
final ClassLoader classLoader = urlClassLoader;
Assertions.assertEquals(String.format("%s[%s]", classLoader, url),
ClassLoaderUtils.toString(classLoader));
}
+ assertEquals("null", ClassLoaderUtils.toString((ClassLoader) null));
}
@Test
@@ -59,5 +61,6 @@ public class ClassLoaderUtilsTest extends AbstractLangTest {
try (URLClassLoader urlClassLoader = new URLClassLoader(new URL[] {
url })) {
Assertions.assertEquals(String.format("%s[%s]", urlClassLoader,
url), ClassLoaderUtils.toString(urlClassLoader));
}
+ assertEquals("null", ClassLoaderUtils.toString((URLClassLoader) null));
}
}