Merge pull request #1853 from hcoles/0.13

Fix #1368 - getResources should never return null
This commit is contained in:
eugene yokota 2015-02-24 22:55:10 -05:00
commit 999f42ab4f
1 changed files with 5 additions and 4 deletions

View File

@ -6,12 +6,13 @@ package classpath
import java.net.URL import java.net.URL
import java.util.Enumeration import java.util.Enumeration
import java.util.Collections
/** A class loader that always fails to load classes and resources. */ /** A class loader that always fails to load classes and resources. */
final class NullLoader extends ClassLoader { final class NullLoader extends ClassLoader {
override final def loadClass(className: String, resolve: Boolean): Class[_] = throw new ClassNotFoundException("No classes can be loaded from the null loader") override final def loadClass(className: String, resolve: Boolean): Class[_] = throw new ClassNotFoundException("No classes can be loaded from the null loader")
override def getResource(name: String): URL = null override def getResource(name: String): URL = null
override def getResources(name: String): Enumeration[URL] = null override def getResources(name: String): Enumeration[URL] = Collections.enumeration(Collections.emptyList())
override def toString = "NullLoader" override def toString = "NullLoader"
} }
@ -77,9 +78,9 @@ class DualLoader(parentA: ClassLoader, aOnlyClasses: String => Boolean, aOnlyRes
else { else {
val urlsA = parentA.getResources(name) val urlsA = parentA.getResources(name)
val urlsB = parentB.getResources(name) val urlsB = parentB.getResources(name)
if (urlsA eq null) if (!urlsA.hasMoreElements)
urlsB urlsB
else if (urlsB eq null) else if (!urlsB.hasMoreElements)
urlsA urlsA
else else
new DualEnumeration(urlsA, urlsB) new DualEnumeration(urlsA, urlsB)
@ -101,4 +102,4 @@ final class DualEnumeration[T](a: Enumeration[T], b: Enumeration[T]) extends Enu
current = b current = b
element element
} }
} }