On 26 December 2017 at 14:54, Pablo J. Villacorta <olbapj...@gmail.com> wrote:
> Thank you so much guys. > > Yes, it is an error launched by the library, but with a statement that > should be valid since I copied it from the github page of the project. It > seems that the "@cec1ce2" means something but I don't know... > it is exactly this input statement: https://github.com/ > yetanalytics/xapi-schema/blob/master/README.org#validate-a- > statement-from-a-json-string-clojurescript > The code you showed in your email explicitly calls myfunction.invoke("some string"); which is the equivalent of the Clojure code (xs/validate-statement-data "some string") which is documented to throw an Exception by the README, in the Usage section: (let [bad-statement (dissoc statement "actor")] (xs/validate-statement-data bad-statement)) ;; => throws Exception or js/Error If you look at the code for xs/validate-satement-data, you can see that it pretty much reduces to calling xs/validate-statement, which itself looks like: (defn validate-statement [s] (if-let [error (statement-checker s)] (throw #?(:clj (Exception. (str error)) :cljs (js/Error. (str error)))) s)) See https://github.com/yetanalytics/xapi-schema/blob/master/src/xapi_schema/core.cljc#L24-L29 for more context. So what I think has happened is that you have given an invalid string to the function ("some string"), so it is throwing a java.lang.Exception with, as its message, the result of calling clojure.lang/str on the error returned by the schema library. That error is a Java object of a class that clojure.lang/str doesn't know about, so it falls back to calling the Java method toString. As the schema.utils.NamedError class does not implement (override) toString, this falls back to java.lang.Object#toString(), which prints the name of the class followed by some random-looking hex value that is supposed to be somehow linked to the place of the object in memory (except that number doesn't change when the GC moves the object, so it's more some sort of identity than an address). If you also get a stack trace when you do pass expectedly valid data to the function, can you prepare a minimal Github project with the code that fails? I can't see anything wrong in your descriptions so far so I'd need to look at the exact code you're trying to run to help you further. -- 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.