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-bcel.git
The following commit(s) were added to refs/heads/master by this push:
new 5cf9151a [BCEL-376] ClassPath.close() throws
UnsupportedOperationException when created with system-classpath
5cf9151a is described below
commit 5cf9151a99ca5a123a6ef1157fd3a68842b5da9a
Author: Gary D. Gregory <[email protected]>
AuthorDate: Fri Feb 7 08:07:03 2025 -0500
[BCEL-376] ClassPath.close() throws UnsupportedOperationException when
created with system-classpath
---
src/changes/changes.xml | 1 +
src/main/java/org/apache/bcel/util/ModularRuntimeImage.java | 6 +++++-
src/test/java/org/apache/bcel/util/ClassPathTestCase.java | 8 +++++++-
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f0ab4698..611e3c6b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -63,6 +63,7 @@ The <action> type attribute can be add,update,fix,remove.
<!-- FIX -->
<action type="fix" dev="ggregory" due-to="Gary
Gregory">Replace internal use of Locale.ENGLISH with Locale.ROOT.</action>
<action issue="BCEL-375" type="fix" dev="ggregory" due-to="J. Lewis
Muir, Gary Gregory">Wrong permissions on bcel .jar file in binary .tar.gz
distribution file.</action>
+ <action issue="BCEL-376" type="fix" dev="ggregory" due-to="Dominik
Stadler, Gary Gregory">ClassPath.close() throws UnsupportedOperationException
when created with system-classpath.</action>
<!-- ADD -->
<action type="update" dev="ggregory" due-to="Gary
Gregory">Add Const.MAJOR_25.</action>
<action type="update" dev="ggregory" due-to="Gary
Gregory">Add Const.MINOR_25.</action>
diff --git a/src/main/java/org/apache/bcel/util/ModularRuntimeImage.java
b/src/main/java/org/apache/bcel/util/ModularRuntimeImage.java
index d39b71fd..90015615 100644
--- a/src/main/java/org/apache/bcel/util/ModularRuntimeImage.java
+++ b/src/main/java/org/apache/bcel/util/ModularRuntimeImage.java
@@ -81,7 +81,11 @@ public class ModularRuntimeImage implements Closeable {
classLoader.close();
}
if (fileSystem != null) {
- fileSystem.close();
+ try {
+ fileSystem.close();
+ } catch (final UnsupportedOperationException e) {
+ // do nothing
+ }
}
}
diff --git a/src/test/java/org/apache/bcel/util/ClassPathTestCase.java
b/src/test/java/org/apache/bcel/util/ClassPathTestCase.java
index 7fb1d0b9..b69599d5 100644
--- a/src/test/java/org/apache/bcel/util/ClassPathTestCase.java
+++ b/src/test/java/org/apache/bcel/util/ClassPathTestCase.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.bcel.util;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -29,6 +28,13 @@ import org.junit.jupiter.api.Test;
public class ClassPathTestCase extends AbstractTestCase {
+ @Test
+ void testClose() throws IOException {
+ try (ClassPath cp = new ClassPath(ClassPath.getClassPath())) {
+ assertNotNull(cp);
+ }
+ }
+
@Test
public void testGetClassFile() throws IOException {
assertNotNull(ClassPath.SYSTEM_CLASS_PATH.getClassFile("java.lang.String"));