user=> (use 'lamina.core)
nil
user=> (def ch (channel))
#'user/ch
user=> (receive-all ch (fn [_] (throw (Exception.))))
true
user=> (enqueue ch 1)
Jan 17, 2012 10:11:23 PM
clojure.contrib.logging$eval165$impl_write_BANG___168 invoke
SEVERE: Error in message callback
java.lang.Exception
at user$eval2403$fn__2404.invoke(NO_SOURCE_FILE:3)
at lamina.core.seq$receive_all$fn__1293$fn__1298$fn__1299.invoke(seq.clj:141)
at lamina.core.observable$observer$reify__319.on_message(observable.clj:43)
at lamina.core.observable.Observable.message(observable.clj:128)
at lamina.core.observable$siphon$fn__607$fn__609.invoke(observable.clj:243)
at lamina.core.observable$observer$reify__319.on_message(observable.clj:43)
at lamina.core.observable.Observable.message(observable.clj:125)
at lamina.core.channel$enqueue.doInvoke(channel.clj:136)
at clojure.lang.RestFn.invoke(RestFn.java:424)
at clojure.lang.Var.invoke(Var.java:369)
at user$eval2407.invoke(NO_SOURCE_FILE:5)
at clojure.lang.Compiler.eval(Compiler.java:5424)
at clojure.lang.Compiler.eval(Compiler.java:5391)
at clojure.core$eval.invoke(core.clj:2382)
at clojure.main$repl$read_eval_print__5624.invoke(main.clj:183)
at clojure.main$repl$fn__5629.invoke(main.clj:204)
at clojure.main$repl.doInvoke(main.clj:204)
at clojure.lang.RestFn.invoke(RestFn.java:513)
at user$eval27$acc__3869__auto____30$fn__32.invoke(NO_SOURCE_FILE:1)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Thread.java:680)
This doesn't seem particularly terse to me. There is a genuine design
issue with exceptions in callbacks that the *only* effect they have is
to log the error, which is being addressed in the next release, but
that doesn't seem to be what you're describing. Can you explain
further?
Zach
Zach