eyalgo
3/11/2016 - 10:54 AM

blog-applift-upgrading-spark-cldump.scala

def CLdump(cl: ClassLoader = Thread.currentThread().getContextClassLoader) = {
  val f = classOf[ClassLoader].getDeclaredField("classes")
  f.setAccessible(true)
  dump(cl)
  def dump(cl: ClassLoader): Unit = {
    if (cl == null) return
    val classes = f.get(cl).asInstanceOf[java.util.Vector[java.lang.Class[_]]]
    println(cl)
    println(classes.toArray.map(cl => "\t" + cl.toString).mkString("\n"))
    dump(cl.getParent)
  }
}
Raw