Hi Folks, I'm stuck and would like a bit of help. This is following on from a question I posted to clojure.tools, but I've reduced the problem to its essence, and figure it might get a few more eyes on it here. My apologies to anyone who has to suffer reading about it twice :-)
My actual problem is that I'm unable to get a Websocket transport for gorilla-repl running. But I think I've boiled down the problem to something that doesn't involve websockets. I'm trying to handle messages with nREPL. If I run the following in the REPL to make an nREPL handler: (require '[clojure.tools.nrepl.transport :as transport]) (require '[clojure.tools.nrepl.server :as nrepl-server]) (def handler (nrepl-server/default-handler)) (def trans (transport/fn-transport nil println)) (nrepl-server/handle* {:op "clone"} handler trans) Then everything goes as I would hope. The nREPL server replies with a new-session message, which is printed to the console by the dopey transport I've provided. If I then lift the new session ID (copy and paste) and send an evaluation message to the nREPL handler (nrepl-server/handle* {:op "eval" :code "(+ 1 5)" :session "2c8b0464-7e09-4c94-81d7-c4e0c7d1314f"} handler trans) It works as I'd expect, replying with the value and a 'done' status message. {status #{:done}, session 2c8b0464-7e09-4c94-81d7-c4e0c7d1314f} {ns user, value 6, session 2c8b0464-7e09-4c94-81d7-c4e0c7d1314f} The problem comes if I try and execute the same command again, which should I would have thought should give the same answer, but instead I get an extremely long stack trace, a snippet of which is below. Exception in thread "nREPL-worker-0" java.lang.StackOverflowError at clojure.lang.RestFn.applyTo(RestFn.java:130) at clojure.core$apply.invoke(core.clj:617) at clojure.core$prn.doInvoke(core.clj:3367) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:617) at clojure.core$println.doInvoke(core.clj:3387) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.tools.nrepl.transport.FnTransport.send(transport.clj:28) at clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__2353.send(pr_values.clj:23) at clojure.tools.nrepl.middleware.session$session_out$fn__2437.invoke(session.clj:51) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$0.flush(Unknown Source) at clojure.tools.nrepl.middleware.session$session_out$fn__2444.doInvoke(session.clj:44) at clojure.lang.RestFn.invoke(RestFn.java:460) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$0.write(Unknown Source) at java.io.PrintWriter.write(PrintWriter.java:456) at java.io.PrintWriter.write(PrintWriter.java:473) at clojure.core$fn__5420.invoke(core_print.clj:187) at clojure.lang.MultiFn.invoke(MultiFn.java:231) at clojure.core$pr_on.invoke(core.clj:3322) at clojure.core$print_map$fn__5428.invoke(core_print.clj:200) at clojure.core$print_sequential.invoke(core_print.clj:58) at clojure.core$print_map.invoke(core_print.clj:203) at clojure.core$fn__5431.invoke(core_print.clj:207) at clojure.lang.MultiFn.invoke(MultiFn.java:231) at clojure.core$pr_on.invoke(core.clj:3322) at clojure.core$pr.invoke(core.clj:3334) at clojure.lang.AFn.applyToHelper(AFn.java:161) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.core$apply.invoke(core.clj:617) at clojure.core$prn.doInvoke(core.clj:3367) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:617) at clojure.core$println.doInvoke(core.clj:3387) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.tools.nrepl.transport.FnTransport.send(transport.clj:28) at clojure.tools.nrepl.middleware.pr_values$pr_values$fn$reify__2353.send(pr_values.clj:23) at clojure.tools.nrepl.middleware.session$session_out$fn__2437.invoke(session.clj:51) at clojure.tools.nrepl.middleware.session.proxy$java.io.Writer$0.flush(Unknown Source) at clojure.tools.nrepl.middleware.session$session_out$fn__2444.doInvoke(session.clj:44) [snip] Somehow, drawbridge gets this to work, even though as far as I can tell I'm doing the same thing. I can't figure out what's going on. Help! Thanks, Jony -- 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.