Skip to content

Instantly share code, notes, and snippets.

@charles-dyfis-net
Created June 8, 2012 15:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charles-dyfis-net/dd7cfb33fdcf3a1d3e3a to your computer and use it in GitHub Desktop.
Save charles-dyfis-net/dd7cfb33fdcf3a1d3e3a to your computer and use it in GitHub Desktop.
;; Passing the classloader in to (Class/forName) works...
com.indeed.jira-releng-plugin.db=> (Class/forName "com.indeed.jira_releng_plugin.db.UserRef" true --plugin-classloader)
com.indeed.jira_releng_plugin.db.UserRef
;; ...but even with the thread context classloader _and_ clojure.lang.Compiler/LOADER set,
;; we can't eval Class.forName() _without_ the classloader explicitly passed.
com.indeed.jira-releng-plugin.db=> (do (.setContextClassLoader (Thread/currentThread) --plugin-classloader)
(with-bindings* {clojure.lang.Compiler/LOADER (clojure.lang.DynamicClassLoader. --plugin-classloader)}
(eval '(Class/forName "com.indeed.jira_releng_plugin.db.UserRef"))))
java.lang.ClassNotFoundException: com.indeed.jira_releng_plugin.db.UserRef
at java.net.URLClassLoader$1.run (URLClassLoader.java:202)
java.security.AccessController.doPrivileged (AccessController.java:-2)
java.net.URLClassLoader.findClass (URLClassLoader.java:190)
clojure.lang.DynamicClassLoader.findClass (DynamicClassLoader.java:61)
java.lang.ClassLoader.loadClass (ClassLoader.java:306)
java.lang.ClassLoader.loadClass (ClassLoader.java:247)
java.lang.Class.forName0 (Class.java:-2)
java.lang.Class.forName (Class.java:169)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment