aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/scala/spark/SparkContext.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/src/main/scala/spark/SparkContext.scala b/core/src/main/scala/spark/SparkContext.scala
index 598432c94a..f044da1e21 100644
--- a/core/src/main/scala/spark/SparkContext.scala
+++ b/core/src/main/scala/spark/SparkContext.scala
@@ -356,21 +356,23 @@ object SparkContext {
// Find the JAR from which a given class was loaded, to make it easy for users to pass
// their JARs to SparkContext
- def jarOfClass[T: ClassManifest]: Option[String] = {
- val cls = classManifest[T].erasure
+ def jarOfClass(cls: Class[_]): Seq[String] = {
val uri = cls.getResource("/" + cls.getName.replace('.', '/') + ".class")
if (uri != null) {
val uriStr = uri.toString
if (uriStr.startsWith("jar:file:")) {
// URI will be of the form "jar:file:/path/foo.jar!/package/cls.class", so pull out the /path/foo.jar
- Some(uriStr.substring("jar:file:".length, uriStr.indexOf('!')))
+ List(uriStr.substring("jar:file:".length, uriStr.indexOf('!')))
} else {
- None
+ Nil
}
} else {
- None
+ Nil
}
}
+
+ // Find the JAR that contains the class of a particular object
+ def jarOfObject(obj: AnyRef): Seq[String] = jarOfClass(obj.getClass)
}