just found that every interaction with Clojure REPL causes one more DynamicClassLoader put on the Thread context class loader chain.
nREPL server started on port 19987
REPL-y 0.1.0-beta10
Clojure 1.4.0
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
(user/sourcery function-name-here)
Javadoc: (javadoc java-object-or-class-here)
(user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")
user=> (defn print-class-loader-stack
([]
(print-class-loader-stack (.getContextClassLoader (Thread/currentThread))))
([cl]
(if cl
(do
(pprint cl)
(print-class-loader-stack (.getParent cl)))
(println "*Top*"))))
#_=> #_=> #_=> #_=> #_=> #_=> #_=> #_=> #'user/print-class-loader-stack
user=> (print-class-loader-stack)
#<DynamicClassLoader clojure.lang.DynamicClassLoader@26a0c73f>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@6f603bdc>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@2f368c5d>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@5b31fd9>
#<AppClassLoader sun.misc.Launcher$AppClassLoader@4aad3ba4>
#<ExtClassLoader sun.misc.Launcher$ExtClassLoader@3326b249>
*Top*
nil
user=> 1
1
user=> 1
1
user=> 1
1
user=> 1
1
user=> (print-class-loader-stack)
#<DynamicClassLoader clojure.lang.DynamicClassLoader@5be04861>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@7481933a>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@273f212a>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@4178feba>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@5323961b>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@26a0c73f>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@6f603bdc>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@2f368c5d>
#<DynamicClassLoader clojure.lang.DynamicClassLoader@5b31fd9>
#<AppClassLoader sun.misc.Launcher$AppClassLoader@4aad3ba4>
#<ExtClassLoader sun.misc.Launcher$ExtClassLoader@3326b249>
*Top*
nil
user=>