This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-11-08
Channels
- # aws (3)
- # bangalore-clj (1)
- # beginners (47)
- # boot (137)
- # cider (1)
- # cljs-dev (67)
- # cljsrn (7)
- # clojure (122)
- # clojure-argentina (5)
- # clojure-berlin (4)
- # clojure-czech (12)
- # clojure-france (27)
- # clojure-italy (9)
- # clojure-russia (88)
- # clojure-spec (44)
- # clojure-uk (157)
- # clojurebridge (2)
- # clojurescript (236)
- # datomic (5)
- # devcards (3)
- # dirac (23)
- # emacs (13)
- # hoplon (29)
- # incanter (1)
- # leiningen (41)
- # microservices (1)
- # off-topic (78)
- # om (145)
- # onyx (13)
- # parinfer (8)
- # pedestal (4)
- # planck (15)
- # protorepl (1)
- # re-frame (72)
- # reagent (25)
- # ring (2)
- # specter (23)
- # test-check (9)
- # untangled (106)
- # vim (8)
- # yada (1)
It would suck for renaissance partners, ltd. if they decided to make a clojure library, and found out they couldn’t use the com.rpl
namespace 😛
Can anyone think of what the root cause for intermittent java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to com.rpl.specter.MutableCell
would be?
@zane what version of Specter?
and what's the full stack trace?
@nathanmarz: [com.rpl/specter "0.12.0"]
@nathanmarz, the Specter part of the stack trace is just:
com.rpl.specter.impl/get-cell impl.clj: 469
java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to com.rpl.specter.MutableCell
we get those all the time as well using specter in a distributed env. I suspect it's got something to do with caching paths
there was a bug in 0.11.2 with that exception related to aot compilation that was fixed in 0.12.0
Yeah, I wish. It's very intermittent. I haven't found a way to reproduce it reliably yet.
the error happens for us in an environment that's serializing classes and sending them over the wire, deserializing and executing. it's way through the looking glass as far as me actually expecting anyone to support it goes. fortunately by virtue of it being distributed it also retries, and then it starts working. so it's way down on my list of things to care about
The section of the code where it was coming from in the old bug is here: https://github.com/nathanmarz/specter/blob/master/src/clj/com/rpl/specter.cljc#L233
as you can see, it now catches ClassCastException there
only possibility is bound?
is returning true for clojure.lang.Var$Unbound
@zane is the context of these exceptions also a distributed env?
I might needs some help understanding what you mean by a "distributed env". It's a web server with multiple threads?
ok, that's good to know
by distributed env I mean something like Hadoop where you serialize/deserialize objects