> do you mean this happens from the beginning, or only after ie. 10 minute 
of 
> running it(I mean, it only breaks down after a while)
> also, is this code on github?


Yes, the app runs for a while. Sometimes it runs for only 10 minutes. Other 
times it runs for an hour. But then, eventually, this error comes up. The 
fact that the app runs at all, but then somehow loses one of its classes, 
has me very confused, but I am still learning the JVM so there is a lot 
that I am confused about. 

The code is on github but this is a private company project, so I can not 
point you to it.




W dniu wtorek, 29 stycznia 2013 02:13:20 UTC-5 użytkownik AtKaaZ napisał:
>
>
>
>
> On Tue, Jan 29, 2013 at 8:03 AM, larry google groups 
> <lawrenc...@gmail.com<javascript:>
> > wrote:
>
>>
>> Maybe someone can tell me where I went wrong on this one.
>>
>> I have an app. Written with Clojure 1.4.
>>
>> At first the app was very small, so I put all the code into core.clj.
>> When I got to about 500 or 600 lines of code, core.clj was too big, so
>> I started to break it up. There were some string-to-enlive-node
>> functions that I moved to a file I called
>> transform_strings_and_nodes.clj.
>>
>> The app keeps the most recent 15 minutes worth of session info in
>> memory, then saves it to the database. Eventually, when this is live,
>> tourists will arrive and interact with a kiosk and choose an
>> itinerary. The itinerary is bulky, a lot of HTML strings held in
>> memory. I began to wonder how bulky this might get. I thought I would
>> write a profile function, relying on Timbre 
>> https://github.com/ptaoussanis/timbre.
>>
>> During development, I would have this function run in a thread and
>> call itself every 5 minutes. I decided I would hit the app with a lot
>> of dummy data, and the profile function would do stuff like time how
>> long it took to transform all the HTML strings in memory into Enlive
>> nodes.
>>
>> This was working for awhile. I am not sure what changed, but now I am
>> getting:
>>
> do you mean this happens from the beginning, or only after ie. 10 minute 
> of running it(I mean, it only breaks down after a while)
> also, is this code on github?
>
>>
>> Exception in thread "Thread-4" java.lang.NoClassDefFoundError:
>> kiosks_clojure/transform_strings_and_nodes 
>
> $join_all_tourist_itineraries_together$fn__115
>>
>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $join_all_tourist_itineraries_together.invoke(transform_strings_and_nodes.clj:
>> 84)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 94)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $prepare_render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 101)
>>         at kiosks_clojure.transform_strings_and_nodes
>>
>> $profile_render_html_string_to_enlive_nodes.invoke(transform_strings_and_nodes.clj:
>> 105)
>>         at clojure.lang.AFn.run(AFn.java:24)
>>         at java.lang.Thread.run(Thread.java:722)
>> Caused by: java.lang.ClassNotFoundException:
>> kiosks_clojure.transform_strings_and_nodes
>> $join_all_tourist_itineraries_together$fn__115
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
>> 308)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
>>
>>
>> As far as I can read the stack trace, the exception seems to get
>> triggered here:
>>
>> (defn join-all-tourist-itineraries-together [sessions]
>>   (reduce
>>    (fn [vector-of-tourist-itineraries-as-strings next-tourist-session]
>>      (conj vector-of-tourist-itineraries-as-strings (get-in next-
>> tourist-session [:itinerary-as-string])))
>>    []
>>    sessions))
>>
>>
>> Which is called from here:
>>
>> (defn render-html-string-to-enlive-nodes []
>>   "2013-01-24 - I worry about how slow this might get when the memory
>> is full of intineraries. I'm going to run these tests while this in
>> development, to get a sense for what kind of performance we might
>> get."
>>   (let [sessions (:sessions @um/interactions)
>>         accumulated-total-of-all-tourist-itineraries-in-memory-as-
>> strings (st/join (join-all-tourist-itineraries-together sessions))
>>         length-of-string-to-be-rendered (.length (str accumulated-
>> total-of-all-tourist-itineraries-in-memory-as-strings))
>>         itineraries-as-one-string-wrapped-in-div (apply str "<div
>> id='all-itineraries'>" accumulated-total-of-all-tourist-itineraries-in-
>> memory-as-strings "</div>")]
>>     (println (apply str "In render-html-string-to-enlive-nodes, the
>> length of the HTML string: "  length-of-string-to-be-rendered))
>>     (transform-html-string-to-enlive-nodes itineraries-as-one-string-
>> wrapped-in-div (keyword "#all-itineraries"))))
>>
>> (defn prepare-render-html-string-to-enlive-nodes []
>>   (p :string-to-enlive-nodes (render-html-string-to-enlive-nodes)))
>>
>> (defn profile-render-html-string-to-enlive-nodes []
>>   (. java.lang.Thread sleep 300000)
>>   (profile :debug :summary-render-html-strings-to-enlive-nodes
>> (prepare-render-html-string-to-enlive-nodes)))
>>
>>
>>
>> I looked for info about this error and I found this:
>>
>>
>> http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html
>>
>> which says:
>>
>> "NoClassDefFoundError in Java comes when Java Virtual Machine is not
>> able to find a particular class at runtime which was available during
>> compile time. "
>>
>>
>> I am very ignorant of the JVM and I do not understand how this can
>> happen. Right now, while testing this app, I am compiling it locally
>> on my Macintosh and I am running it locally on my Macintosh. How can a
>> class be present at compile time but not at runtime?
>>
>>
>>
>>
>> --
>> --
>> 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<javascript:>
>> 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 <javascript:>
>> 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 unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>
> -- 
> Please correct me if I'm wrong or incomplete,
> even if you think I'll subconsciously hate it.
>
> 

-- 
-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to