From e94c0869d9f6e8268a85ab1733954c2fab4eee99 Mon Sep 17 00:00:00 2001
From: Nils Christian Ehmke <nie@informatik.uni-kiel.de>
Date: Fri, 6 Apr 2012 13:26:06 +0200
Subject: [PATCH] Quality modifications

---
 .../webgui/common/PluginClassLoader.java      | 26 +++++++++++++------
 .../kieker/webgui/common/PluginFinder.java    |  8 +++---
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java
index bf3d7911..d8416880 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginClassLoader.java
@@ -27,8 +27,6 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 import kieker.analysis.AnalysisController;
 import kieker.analysis.model.analysisMetaModel.MIDependency;
@@ -53,7 +51,7 @@ public final class PluginClassLoader extends ClassLoader {
 	 */
 	private static PluginClassLoader instance;
 
-	private final List<URL> list = new ArrayList<URL>();
+	private final List<URL> urlList = new ArrayList<URL>();
 
 	private URLClassLoader classLoader = null;
 
@@ -61,7 +59,7 @@ public final class PluginClassLoader extends ClassLoader {
 	 * The default constructor of this class. During the creation all available libraries will be added to the class loader.
 	 */
 	private PluginClassLoader() {
-		this.classLoader = new URLClassLoader(new URL[]{}, AnalysisController.class.getClassLoader());
+		this.classLoader = new URLClassLoader(new URL[] {}, AnalysisController.class.getClassLoader());
 		/* Make sure that all libs are loaded. */
 		final List<MIDependency> libs = FileManager.getInstance().loadAllDependencies();
 		for (final MIDependency lib : libs) {
@@ -80,9 +78,15 @@ public final class PluginClassLoader extends ClassLoader {
 	 *            The URL of the dependency to be added.
 	 */
 	public void addURL(final URL url) {
-		this.list.add(url);
+		this.urlList.add(url);
 
-		this.classLoader = new URLClassLoader(this.list.toArray(new URL[this.list.size()]), AnalysisController.class.getClassLoader());
+		this.classLoader = (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
+			@Override
+			public Object run() {
+				return new URLClassLoader(PluginClassLoader.this.urlList.toArray(new URL[PluginClassLoader.this.urlList.size()]), AnalysisController.class
+						.getClassLoader());
+			}
+		});
 	}
 
 	/**
@@ -92,9 +96,15 @@ public final class PluginClassLoader extends ClassLoader {
 	 *            The URL of the dependency to be added.
 	 */
 	public void removeURL(final URL url) {
-		this.list.remove(url);
+		this.urlList.remove(url);
 
-		this.classLoader = new URLClassLoader(this.list.toArray(new URL[this.list.size()]), AnalysisController.class.getClassLoader());
+		this.classLoader = (URLClassLoader) AccessController.doPrivileged(new PrivilegedAction() {
+			@Override
+			public Object run() {
+				return new URLClassLoader(PluginClassLoader.this.urlList.toArray(new URL[PluginClassLoader.this.urlList.size()]), AnalysisController.class
+						.getClassLoader());
+			}
+		});
 	}
 
 	/**
diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
index 5ec6c855..5d3619c2 100644
--- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
+++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/PluginFinder.java
@@ -66,7 +66,7 @@ public final class PluginFinder {
 	 */
 	public static List<Class<AbstractRepository>> getAllRepositoriesWithinJar(final URL url) {
 		// TODO: Merge this with the other method
-		final List<Class<AbstractRepository>> repositoryClasses = (List<Class<AbstractRepository>>) REPOSITORY_CACHE.get(url);
+		final List<Class<AbstractRepository>> repositoryClasses = (List<Class<AbstractRepository>>) PluginFinder.REPOSITORY_CACHE.get(url);
 		if (repositoryClasses != null) {
 			return repositoryClasses;
 		}
@@ -96,7 +96,7 @@ public final class PluginFinder {
 				}
 			}
 			jarFile.close();
-			REPOSITORY_CACHE.put(url, result);
+			PluginFinder.REPOSITORY_CACHE.put(url, result);
 			return result;
 		} catch (final IOException ex) {
 			ex.printStackTrace();
@@ -113,7 +113,7 @@ public final class PluginFinder {
 	 * @return A list containing all available plugin-classes or null, if an exception occurred.
 	 */
 	public static List<Class<AbstractPlugin>> getAllPluginsWithinJar(final URL url) {
-		final List<Class<AbstractPlugin>> pluginClasses = (List<Class<AbstractPlugin>>) PLUGIN_CACHE.get(url);
+		final List<Class<AbstractPlugin>> pluginClasses = (List<Class<AbstractPlugin>>) PluginFinder.PLUGIN_CACHE.get(url);
 		if (pluginClasses != null) {
 			return pluginClasses;
 		}
@@ -146,7 +146,7 @@ public final class PluginFinder {
 				}
 			}
 			jarFile.close();
-			PLUGIN_CACHE.put(url, result);
+			PluginFinder.PLUGIN_CACHE.put(url, result);
 			return result;
 		} catch (final IOException ex) {
 			ex.printStackTrace();
-- 
GitLab