On Apr 2, 2014, at 4:49 AM, Jakub Holy <jakub.h...@iterate.no> wrote:
> The problem is that the stack trace contains no indication that it is 
> clj-ns-browser that is causing the problem. I would like to know if there are 
> any tricks to troubleshoot these problems other than binary search through 
> deps/plugins in profile.clj.

Well you can use: lein deps :tree

That will show you any version conflicts as well as the paths by which those 
conflicts are reached - and it will suggest exclusions to resolve the conflicts 
(although some version conflicts can't be resolved as-is - you must upgrade one 
or other of your dependencies to get things working).

But if you want to start from the stack trace...

A lot of the stack trace can be thrown away / ignored which helps narrow things 
down...

> $ lein ring server
> Exception in thread "main" java.io.FileNotFoundException: Could not locate 
> clojure/tools/namespace/parse__init.class or 
> clojure/tools/namespace/parse.clj on classpath: , 
> compiling:(ns_tracker/parse.clj:1:1)

^^^ This tells us it failed to load clojure.tools.namespace.parse while 
compiling ns-tracker.parse...

>       at ns_tracker.core$eval514$loading__4958__auto____515.invoke(core.clj:1)
>       at ns_tracker.core$eval514.invoke(core.clj:1)

^^^ ...which it found in ns-tracker.core...

>       at 
> ring.middleware.reload$eval508$loading__4958__auto____509.invoke(reload.clj:1)
>       at ring.middleware.reload$eval508.invoke(reload.clj:1)

^^^ ...which it found in ring.middleware.reload...

>       at 
> ring.server.standalone$eval15$loading__4958__auto____16.invoke(standalone.clj:1)
>       at ring.server.standalone$eval15.invoke(standalone.clj:1)

^^^ ...which it found in ring.server.standalone...

>       at 
> ring.server.leiningen$eval9$loading__4958__auto____10.invoke(leiningen.clj:1)
>       at ring.server.leiningen$eval9.invoke(leiningen.clj:1)

^^^ ...and now we're at the top-level (since this was invoked from the user 
namespace):

>       at user$eval5.invoke(form-init6357505187919130689.clj:1)

And because all these seem to be at line 1, they're likely the (ns ...) forms 
and so we have part of the dependency chain. I mostly just skipped over all the 
clojure.* stuff except for noting (in my head) that clojure.core/load and 
clojure.core/use were called along that path.

Does that help at all?

Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)



Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to