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

Reply via email to