Not-found is not the same is not-nil. Is it possible that this-users-converstation *does* have an :incoming-message key with a nil value?
See the difference between these two cases: (get {} :a :not-found) => :not-found (get {:a nil} :a :not-found) => nil Notice also that records always "have" keys that are defined on them even if they are not set: (defrecord Rec [a])=> user.Rec (get (map->Rec {}) :a :not-found) => nil Perhaps you want to use or instead? (or (get this-users-conversation :incoming-message) "") Or figure out why nil is written and prevent it? On Friday, October 16, 2015 at 1:33:29 PM UTC-5, Lawrence Krubner wrote: > > What am I doing wrong here? I want to call clojure.string/lower-case on > the :incoming-message of this-users-conversation. If there is no message, I > return an empty string. > > > (defn discern-current-state [this-users-conversation] > (cond > (= (clojure.string/lower-case (get this-users-conversation > :incoming-message "")) "yes") (assoc this-users-conversation :current-state > :salesforce-write) > > > and yet the error points to the above line: > > java.lang.NullPointerException {:class java.lang.NullPointerException, > :message nil, :trace-elems ({:anon-fn false, :fn "lower-case", :ns > "clojure.string", :clojure true, :file "string.clj", :line 215} {:anon-fn > false, :fn "discern-current-state", :ns "nlph.event-bus", :clojure true, > :file "event_bus.clj", :line 92} > > > but of course, at the REPL, everything works as I would expect: > > (def users {:message "hello"}) > #'nlph.core/users > > nlph.core=> (clojure.string/lower-case (get users :message)) > "hello" > > nlph.core=> (clojure.string/lower-case (get users :message "")) > "hello" > > nlph.core=> (clojure.string/lower-case (get users :lisa)) > > NullPointerException clojure.string/lower-case (string.clj:215) > > nlph.core=> (clojure.string/lower-case (get users :lisa "")) > "" > > nlph.core=> (clojure.string/lower-case (get users :lisa)) > > NullPointerException clojure.string/lower-case (string.clj:215) > -- 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.