You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/19 16:16:10 UTC

[isis] 05/07: ISIS-2223: Resources should be closed

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit d76e60d3edce1de0f192986d298987e0be1e870b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 19 17:07:04 2020 +0100

    ISIS-2223: Resources should be closed
---
 .../isis/core/commons/internal/context/_Plugin.java    | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/internal/context/_Plugin.java b/core/commons/src/main/java/org/apache/isis/core/commons/internal/context/_Plugin.java
index 9771bb8..4565a94 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/internal/context/_Plugin.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/internal/context/_Plugin.java
@@ -162,14 +162,16 @@ public final class _Plugin {
 
             ClassLoader parentCL = pluginInterfaceClass.getClassLoader();
             URL[] urls = {classPath.toURI().toURL()};
-            ClassLoader cl = URLClassLoader.newInstance(urls, parentCL);
-            Class<S> pluginClass = _Casts.uncheckedCast(
-                    cl.loadClass(pluginFullyQualifiedClassName));
-            S plugin = pluginClass.newInstance();
-
-            _Context.putSingleton(pluginInterfaceClass, plugin);
-
-            return plugin;
+            
+            try(URLClassLoader cl = URLClassLoader.newInstance(urls, parentCL)) {
+                Class<S> pluginClass = _Casts.uncheckedCast(
+                        cl.loadClass(pluginFullyQualifiedClassName));
+                S plugin = pluginClass.newInstance();
+
+                _Context.putSingleton(pluginInterfaceClass, plugin);
+                
+                return plugin;
+            }
 
         } catch (Exception e) {
             throw new PluginResolveException(