austin
austin copied to clipboard
multiple (prn "something") produces a NPE
I have discovered that when my onchange handler on an input elementet that uses prn to debug, was fired many times.
That will raise an exception
java.lang.RuntimeException: Agent is failed, needs restart
at clojure.lang.Util.runtimeException(Util.java:223)
at clojure.lang.Agent.dispatch(Agent.java:238)
at clojure.core$send_via.doInvoke(core.clj:1915)
at clojure.lang.RestFn.applyTo(RestFn.java:146)
at clojure.core$apply.invoke(core.clj:623)
at clojure.core$send_off.doInvoke(core.clj:1937)
at clojure.lang.RestFn.invoke(RestFn.java:464)
at cemerick.austin$constrain_order.invoke(austin.clj:238)
at cemerick.austin$eval3275$fn__3277.invoke(austin.clj:244)
at clojure.lang.MultiFn.invoke(MultiFn.java:227)
at cemerick.austin$handle_request.invoke(austin.clj:282)
at cemerick.austin$create_server$reify__3178.handle(austin.clj:25)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:677)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:649)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
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$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$print.doInvoke(core.clj:3379)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at cemerick.austin$eval3275$fn__3277$fn__3279$fn__3280.invoke(austin.clj:247)
at cemerick.austin$eval3275$fn__3277$fn__3279.invoke(austin.clj:246)
at cemerick.austin$run_in_order.invoke(austin.clj:230)
at clojure.core$binding_conveyor_fn$fn__4107.invoke(core.clj:1839)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:114)
at clojure.lang.Agent$Action.run(Agent.java:163)
The failure is that the :print
dispatch for handle-post
is attempting to read
the content that was printed; this is yielding some value that print
on the Clojure side is apparently unable to handle.
That part of Austin is largely unchanged from its roots in the stock ClojureScript browser REPL implementation. I'll need to re-familiarize myself with what the objectives are there, because I can't think of why we'd be wanting to read what was printed browser-side.