I tried upgrading a few more apps and ran into this same problem in the absence 
of core.async - but in the presence of core.cache and core.memoize so I'm 
trying to create a small test case to isolate the issue.

Sean

> On Jan 11, 2015, at 5:07 PM, Sean Corfield <s...@corfield.org> wrote:
> 
> The full Caused by stacktrace is this:
> 
> Caused by: java.lang.IllegalArgumentException: No implementation of method: 
> :has? of protocol: #'clojure.core.cache/CacheProtocol found for class: 
> clojure.core.memoize.PluggableMemoization
>       at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:555)
>       at 
> clojure.core.cache$eval1710$fn__1773$G__1699__1780.invoke(cache.clj:20)
>       at clojure.core.cache$through.invoke(cache.clj:53)
>       at clojure.core.memoize$through_STAR_.invoke(memoize.clj:52)
>       at clojure.lang.Atom.swap(Atom.java:65)
>       at clojure.core$swap_BANG_.invoke(core.clj:2236)
>       at 
> clojure.core.memoize$build_memoizer$fn__12665.doInvoke(memoize.clj:134)
>       at clojure.lang.RestFn.applyTo(RestFn.java:137)
>       at clojure.lang.AFunction$1.doInvoke(AFunction.java:29)
>       at clojure.lang.RestFn.invoke(RestFn.java:408)
>       at clojure.tools.analyzer.jvm$desugar_host_expr.invoke(jvm.clj:117)
>       at clojure.tools.analyzer.jvm$macroexpand_1.invoke(jvm.clj:174)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:281)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$analyze_let.invoke(analyzer.clj:505)
>       at clojure.tools.analyzer$fn__12469.invoke(analyzer.clj:530)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:284)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12392.invoke(analyzer.clj:295)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$analyze_body.invoke(analyzer.clj:366)
>       at clojure.tools.analyzer$analyze_let.invoke(analyzer.clj:520)
>       at clojure.tools.analyzer$fn__12471.invoke(analyzer.clj:540)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:284)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12392.invoke(analyzer.clj:295)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer.jvm$fn__13956.invoke(jvm.clj:66)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$fn__12389.invoke(analyzer.clj:283)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:238)
>       at clojure.tools.analyzer$fn__12346.invoke(analyzer.clj:68)
>       at clojure.lang.MultiFn.invoke(MultiFn.java:233)
>       at clojure.tools.analyzer$analyze.invoke(analyzer.clj:123)
>       at clojure.tools.analyzer.jvm$analyze$fn__14085.invoke(jvm.clj:476)
>       at clojure.lang.AFn.applyToHelper(AFn.java:152)
>       at clojure.lang.AFn.applyTo(AFn.java:144)
>       at clojure.core$apply.invoke(core.clj:626)
>       at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1864)
>       at clojure.lang.RestFn.invoke(RestFn.java:425)
>       at clojure.tools.analyzer.jvm$analyze.invoke(jvm.clj:474)
>       at clojure.tools.analyzer.jvm$analyze.invoke(jvm.clj:467)
>       at 
> clojure.core.async.impl.ioc_macros$state_machine.invoke(ioc_macros.clj:1062)
>       at clojure.core.async$go.doInvoke(async.clj:384)
>       at clojure.lang.RestFn.invoke(RestFn.java:442)
>       at clojure.lang.Var.invoke(Var.java:388)
>       at clojure.lang.AFn.applyToHelper(AFn.java:160)
>       at clojure.lang.Var.applyTo(Var.java:700)
>       at clojure.lang.Compiler.macroexpand1(Compiler.java:6606)
> 
> 
>> On Jan 11, 2015, at 4:55 PM, Sean Corfield <s...@corfield.org> wrote:
>> 
>> On Jan 11, 2015, at 6:34 AM, Alex Miller <a...@puredanger.com> wrote:
>>> I would greatly appreciate hearing any feedback about this (or any other) 
>>> alpha, even if it's just: everything looks ok. 
>> 
>> I upgraded an app that uses core.async (0.1.346.0-17112a-alpha) and got this 
>> exception on the ns that brings in clojure.core.async - it uses the latest 
>> versions of both core.cache and core.memoize as transitive dependencies, 
>> with no conflicts:
>> 
>> Exception in thread "main" java.lang.IllegalArgumentException: No 
>> implementation of method: :has? of protocol: 
>> #'clojure.core.cache/CacheProtocol found for class: 
>> clojure.core.memoize.PluggableMemoization, compiling:(async.clj:433:6)
>>      at clojure.lang.Compiler.macroexpand1(Compiler.java:6619)
>>      at clojure.lang.Compiler.analyzeSeq(Compiler.java:6694)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6499)
>>      at clojure.lang.Compiler.analyzeSeq(Compiler.java:6696)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6499)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6460)
>>      at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5836)
>>      at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5271)
>>      at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3900)
>>      at clojure.lang.Compiler.analyzeSeq(Compiler.java:6706)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6499)
>>      at clojure.lang.Compiler.analyzeSeq(Compiler.java:6696)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6499)
>>      at clojure.lang.Compiler.access$200(Compiler.java:38)
>>      at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:560)
>>      at clojure.lang.Compiler.analyzeSeq(Compiler.java:6708)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6499)
>>      at clojure.lang.Compiler.analyze(Compiler.java:6460)
>>      at clojure.lang.Compiler.eval(Compiler.java:6771)
>>      at clojure.lang.Compiler.load(Compiler.java:7194)
>>      at clojure.lang.RT.loadResourceScript(RT.java:370)
>>      at clojure.lang.RT.loadResourceScript(RT.java:361)
>>      at clojure.lang.RT.load(RT.java:440)
>>      at clojure.lang.RT.load(RT.java:411)
>>      at clojure.core$load$fn__5436.invoke(core.clj:5863)
>>      at clojure.core$load.doInvoke(core.clj:5862)
>>      at clojure.lang.RestFn.invoke(RestFn.java:408)
>>      at clojure.core$load_one.invoke(core.clj:5653)
>>      at clojure.core$load_lib$fn__5383.invoke(core.clj:5708)
>>      at clojure.core$load_lib.doInvoke(core.clj:5707)
>>      at clojure.lang.RestFn.applyTo(RestFn.java:142)
>>      at clojure.core$apply.invoke(core.clj:628)
>>      at clojure.core$load_libs.doInvoke(core.clj:5746)
>>      at clojure.lang.RestFn.applyTo(RestFn.java:137)
>>      at clojure.core$apply.invoke(core.clj:628)
>>      at clojure.core$require.doInvoke(core.clj:5829)
>>      at clojure.lang.RestFn.invoke(RestFn.java:551)
>>      at dynamo.auth$eval1147$loading__5322__auto____1148.invoke(auth.clj:5)
>>      at dynamo.auth$eval1147.invoke(auth.clj:5)
>> ...
>> Caused by: java.lang.IllegalArgumentException: No implementation of method: 
>> :has? of protocol: #'clojure.core.cache/CacheProtocol found for class: 
>> clojure.core.memoize.PluggableMemoization
>>      at clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:555)
>>      at 
>> clojure.core.cache$eval1710$fn__1773$G__1699__1780.invoke(cache.clj:20)
>>      at clojure.core.cache$through.invoke(cache.clj:53)
>>      at clojure.core.memoize$through_STAR_.invoke(memoize.clj:52)
>>      at clojure.lang.Atom.swap(Atom.java:65)
>>      at clojure.core$swap_BANG_.invoke(core.clj:2236)
>>      at 
>> clojure.core.memoize$build_memoizer$fn__12665.doInvoke(memoize.clj:134)
>> ...
>> 
> 
> 

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)



-- 
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/d/optout.

Reply via email to