Hey Sam & Dave, I'm following along at home. I followed David's advice and there's no change. FWIW here's the client datastructure and the exception stacktrace:
#<ZooKeeper State:CONNECTED Timeout:5000 sessionid:0x133fa42621c0004 local:/10.50.0.195:58347 remoteserver:tyrol/10.50.0.184:2181 lastZxid:44 xid:12 sent:56 recv:56 queuedpkts:0 pendingresp:0 queuedevents:0> java.lang.IllegalArgumentException: Path must not end with / character at org.apache.zookeeper.common.PathUtils.validatePath(PathUtils.java:58) at org.apache.zookeeper.ZooKeeper.setData(ZooKeeper.java:1025) at zookeeper$set_data.doInvoke(zookeeper.clj:394) at clojure.lang.RestFn.invoke(RestFn.java:470) at avout.transaction$update_txn_state.invoke(transaction.clj:82) at avout.transaction$stop$fn__2604.invoke(transaction.clj:239) at avout.transaction$stop.invoke(transaction.clj:238) at avout.transaction.LockingTransaction$fn__2617.invoke(transaction.clj:321) at avout.transaction.LockingTransaction.runInTransaction(transaction.clj:301) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:92) at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:30) at avout.transaction$run_in_transaction.invoke(transaction.clj:354) at avout.core$zk_ref.doInvoke(core.clj:51) at clojure.lang.RestFn.invoke(RestFn.java:445) at clojure.lang.AFn.applyToHelper(AFn.java:167) at clojure.lang.RestFn.applyTo(RestFn.java:132) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3337) at clojure.lang.Compiler$DefExpr.eval(Compiler.java:375) at clojure.lang.Compiler.eval(Compiler.java:6470) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at swank.commands.basic$eval_region.invoke(basic.clj:47) at swank.commands.basic$eval_region.invoke(basic.clj:37) at swank.commands.basic$eval760$interactive_eval__761.invoke(basic.clj:66) at clojure.lang.Var.invoke(Var.java:401) at tavout.core$eval2926.invoke(NO_SOURCE_FILE) at clojure.lang.Compiler.eval(Compiler.java:6465) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at swank.core$eval_in_emacs_package.invoke(core.clj:92) at swank.core$eval_for_emacs.invoke(core.clj:239) at clojure.lang.Var.invoke(Var.java:409) at clojure.lang.AFn.applyToHelper(AFn.java:167) at clojure.lang.Var.applyTo(Var.java:518) at clojure.core$apply.invoke(core.clj:600) at swank.core$eval_from_control.invoke(core.clj:99) at swank.core$spawn_worker_thread$fn__493$fn__494.invoke(core.clj:298) at clojure.lang.AFn.applyToHelper(AFn.java:159) at clojure.lang.AFn.applyTo(AFn.java:151) at clojure.core$apply.invoke(core.clj:600) at swank.core$spawn_worker_thread$fn__493.doInvoke(core.clj:294) at clojure.lang.RestFn.invoke(RestFn.java:397) at clojure.lang.AFn.run(AFn.java:24) at java.lang.Thread.run(Thread.java:680) Edmund On 01/12/2011 15:39, David Edgar Liebke wrote: > Hi Sam, > >> run-in-transaction exception: #<IllegalArgumentException >> java.lang.IllegalArgumentException: Path must not end with / character> nil > Very interesting, I wouldn't expect that particular exception unless you > named the zk-ref "/r0/" instead of "/r0", which you apparently didn't. > > And even when I do call it "/r0/" I get the "Path must not end with / > character" exception at a different point in the code, which is probably the > result of a patch I added to zookeeper-clj yesterday. > > Can you try deleting the zookeeper-clj jar file from your dependencies, > blowing about your ~/.m2/repository/zookeeper-clj directory, reloading your > deps, and trying again? > > David > > > On Dec 1, 2011, at 10:04 AM, Sam Aaron wrote: > >> Hi David, >> >> I'm super excited by Avout. It seems *better* than magic in that it not only >> appears to make complicated things possible, but also in a conceptually >> transparent way. Crazy cool. >> >> I'm about to look into this in detail, but I thought I'd just post an issue >> I'm having with the basic example just on the off-chance that I'm doing >> something obviously wrong. >> >> I have zookeeper 3.3.3 installed running on port 2181 with a valid dataDir >> path with the appropriate permissions. I'm got avout 0.5.0 and in a REPL >> session I do the following: >> >> ; SLIME 2009-10-15 >> >> user> (use 'avout.core) >> >> nil >> >> user> (def client (connect "127.0.0.1")) >> >> #'user/client >> >> user> (def r0 (zk-ref client "/r0" 0)) >> >> run-in-transaction exception: #<IllegalArgumentException >> java.lang.IllegalArgumentException: Path must not end with / character> nil >> #'user/r0 >> >> user> r0 >> >> #<DistributedReference@761b2f32: nil> >> >> user> @r0 >> >> nil >> >> >> Sam >> >> --- >> http://sam.aaron.name >> >> >> On 29 Nov 2011, at 17:38, liebke wrote: >> >>> Today we are releasing Avout, which brings Clojure's in-memory model >>> of state to distributed application development by providing a >>> distributed implementation of Clojure's Multiversion Concurrency >>> Control (MVCC) STM along with distributable, durable, and extendable >>> versions of Clojure's Atom and Ref concurrency primitives. >>> >>> Here's the post announcing the project: >>> http://clojure.com/blog/2011/11/29/avout.html >>> >>> And here's the project's website: http://avout.io >>> >>> >>> David >>> >>> -- >>> 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 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 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