Basically, the issue is:
When a deftype/defrecord named class is used from Java, its containing
namespace is not loaded automatically, so even calling a function in
the same namespace will raise an exception like this:
java.lang.IllegalStateException: Attempting to call unbound fn ...
An example:
(ns my-ns.core)
(defn test-func []
)
(defrecord testrec []
ITestProtocol
(init [this]
(test-func)))
In Java side, the below will fail:
rec = new testrec();
rec.init();
with an exception raised
java.lang.IllegalStateException: Attempting to call unbound fn #'my-
ns.core/test-func.
This issue was raised before about 1 and half year ago here:
https://groups.google.com/forum/#!msg/clojure-dev/4CtSVWcD15A/shpMuyjMpxsJ
And a work-around is provided, like here:
http://stackoverflow.com/questions/10953621/clojure-deftype-calling-function-in-the-same-namespace-throws-java-lang-illegal
It took me hours to figure out the problem as everything works fine in
REPL itself.
Does anybody know if this issue will be addressed? Thank you.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en