Without AOT, the classLoader's are not the same (str (.getClassLoader A))
WebappClassLoader delegate: false repositories: /WEB-INF/classes/ ----------> Parent Classloader: org.apache.catalina.loader.StandardClassLoader@790bc49d (str (.getClassLoader (class an-A-record))) clojure.lang.DynamicClassLoader@3ac803e6 I'll try AOT compile next, as that DynamicClassLoader seems to suggest. But I'm not sure what else can be done. On Thursday, December 13, 2012 10:53:53 PM UTC-5, CGAT wrote: > > I did not AOT compile it, though I can try that. I'll check the > ClassLoader as well, thanks. I do know that (class an-A-record) is A, > suitably ns-qualified. > > Thanks for the ideas. What did you finally do when this happened to you? > > On Thursday, December 13, 2012 8:19:48 PM UTC-5, cjeris wrote: >> >> In the Tomcat uberwar setting, is ns1 AOT-compiled? Are (.getClassLoader >> A) and (.getClassLoader (.getClass an-A-record)) different class loaders? >> That's what the problem was when this one bit me. I never did track down >> exactly why it happens or how to fix it. >> >> peace, Chris Jeris >> >> On Thu, Dec 13, 2012 at 6:13 PM, CGAT <genov...@gmail.com> wrote: >> >>> I have a frustrating situation and would appreciate any help. >>> The call >>> >>> (instance? A an-A-record) >>> >>> is returning false when an-A-record is in fact an instance of A. >>> >>> This is in a noir/compojure/ring server. But the problem *only* *occurs >>> *when run under tomcat, *not* when run under Jetty. I'm guessing >>> that I've missed declaring something properly, but I don't see what it >>> is. >>> (I hope this is a suitable forum for this question.) >>> >>> Here's the situation in more detail. >>> >>> In ns1 >>> >>> (defrecord A ...) >>> (defrecord B ...) >>> (defn AorB? [x] (or (instance? A x) (instance? B x))) >>> (defn Afactory [] ...) ; makes an A >>> >>> In ns2, which :require's ns 1 refering AorB? and Afactory and :imports >>> A and B properly from ns1. >>> >>> (AorB? (Afactory)) ;=> true in jetty, false in tomcat >>> >>> I'm using Clojure 1.4.0, compojure 1.1.3, noir 1.3.0-beta10, .... >>> I use lein run to start the jetty server (with a suitable -main), >>> and lein ring uberwar to create a warfile which runs under >>> Apache Tomcat 6.0.24 (with JVM 1.6.0_26-b03). >>> All the rest of the code appears to be behaving identically under either >>> platform. >>> >>> I've been banging my head against the wall over this and would >>> appreciate any help or pointers. Thanks! >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clo...@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+u...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >> >> >> >> >> -- >> Chris Jeris >> cje...@brightcove.com (617) 686-3271 >> freenode/twitter/github: ystael >> >> -- 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