I think you're confusing compile-time with run-time. A try-catch wouldn't affect the compiler. Perhaps you actually have commons-logging in your classpath? It's pulled in by many libraries. Or you forgot to remove the quote in addition to removing the eval in your testing.
Here's the code that fails to compile. All I did was remove eval and the quote around the 'do'. (ns testclj.core) (defn cl-factory "Returns a Commons Logging-based implementation of the LoggerFactory protocol, or nil if not available." [] (try (Class/forName "org.apache.commons.logging.Log") (do (extend org.apache.commons.logging.Log Logger {:enabled? (fn [logger# level#] (condp = level# :trace (.isTraceEnabled logger#) :debug (.isDebugEnabled logger#) :info (.isInfoEnabled logger#) :warn (.isWarnEnabled logger#) :error (.isErrorEnabled logger#) :fatal (.isFatalEnabled logger#) (throw (IllegalArgumentException. (str level#))))) :write! (fn [logger# level# e# msg#] (if e# (condp = level# :trace (.trace logger# msg# e#) :debug (.debug logger# msg# e#) :info (.info logger# msg# e#) :warn (.warn logger# msg# e#) :error (.error logger# msg# e#) :fatal (.fatal logger# msg# e#) (throw (IllegalArgumentException. (str level#)))) (condp = level# :trace (.trace logger# msg#) :debug (.debug logger# msg#) :info (.info logger# msg#) :warn (.warn logger# msg#) :error (.error logger# msg#) :fatal (.fatal logger# msg#) (throw (IllegalArgumentException. (str level#))))))}) (reify LoggerFactory (name [_#] "org.apache.commons.logging") (get-logger [_# logger-ns#] (org.apache.commons.logging.LogFactory/getLog (str logger- ns#))))) (catch Exception e nil))) On Tue, Nov 22, 2011 at 1:34 PM, vitalyper <vitaly...@yahoo.com> wrote: > Gary, > > You are probably removing try/catch as well. ClassNonFoundException is > expected and silenced with catch. > > (defn cl-factory > "Returns a Commons Logging-based implementation of the > LoggerFactory > protocol, or > nil if not available." > [] > (try > (Class/forName "foo.bar") > ; eval removed > (catch Exception e nil))) > > On Nov 18, 5:16 pm, Gary Trakhman <gary.trakh...@gmail.com> wrote: >> I get this when i try it in a blank project, removing the eval and the >> quote: >> >> Unknown location: >> error: java.lang.ClassNotFoundException: org.apache.commons.logging.Log >> >> core.clj:16:8: >> error: java.lang.ClassNotFoundException: org.apache.commons.logging.Log >> (core.clj:16) >> >> Compilation failed. > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en