From 865b6630156f43e77319ffbf02cb765ffbe3e98c Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 17 Dec 2014 20:15:46 +0300 Subject: [PATCH] Minor style fixes in ParentLastURLClassLoader --- .../plugin/ParentLastURLClassLoader.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java index da2595cb426..d302fa0bfd0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java @@ -1,6 +1,7 @@ package org.jetbrains.kotlin.gradle.plugin; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.net.URL; import java.net.URLClassLoader; @@ -11,11 +12,13 @@ import java.util.List; * This takes a fair bit of doing because java really prefers parent-first. *

* For those not familiar with class loading trickery, be wary + * + * http://stackoverflow.com/questions/5445511/how-do-i-create-a-parent-last-child-first-classloader-in-java-or-how-to-overr */ public class ParentLastURLClassLoader extends ClassLoader { - private ChildURLClassLoader childClassLoader; + private final ChildURLClassLoader childClassLoader; - public ParentLastURLClassLoader(List classpath, ClassLoader parent) { + public ParentLastURLClassLoader(@NotNull List classpath, @Nullable ClassLoader parent) { super(Thread.currentThread().getContextClassLoader()); URL[] urls = classpath.toArray(new URL[classpath.size()]); @@ -28,7 +31,8 @@ public class ParentLastURLClassLoader extends ClassLoader { try { // first we try to find a class inside the child classloader return childClassLoader.findClass(name); - } catch (ClassNotFoundException e) { + } + catch (ClassNotFoundException e) { // didn't find it, try the parent return super.loadClass(name, resolve); } @@ -38,7 +42,7 @@ public class ParentLastURLClassLoader extends ClassLoader { * This class allows me to call findClass on a classloader */ private static class FindClassClassLoader extends ClassLoader { - public FindClassClassLoader(ClassLoader parent) { + public FindClassClassLoader(@Nullable ClassLoader parent) { super(parent); } @@ -54,9 +58,9 @@ public class ParentLastURLClassLoader extends ClassLoader { * We need this because findClass is protected in URLClassLoader */ public static class ChildURLClassLoader extends URLClassLoader { - private FindClassClassLoader realParent; + private final FindClassClassLoader realParent; - public ChildURLClassLoader(URL[] urls, FindClassClassLoader realParent) { + public ChildURLClassLoader(@NotNull URL[] urls, @NotNull FindClassClassLoader realParent) { super(urls, null); this.realParent = realParent; @@ -73,7 +77,8 @@ public class ParentLastURLClassLoader extends ClassLoader { try { return super.findClass(name); - } catch (ClassNotFoundException e) { + } + catch (ClassNotFoundException e) { // if that fails, we ask our real parent classloader to load the class (we give up) return realParent.loadClass(name); }