LuminusでCookieを扱った際に起きたバグ
responseの:cookiesの中にある:valueでnilがあると例外が起きる.
{:status 200, :headers {"Content-Type" "text/html; charset=utf-8"}, :body "response", :session {:key "value"}, :cookies {"app-session-id" {:value nil}}}
option:enable
title:responseをdumpした結果
nilがないようにすれば解決した.
java.lang.Thread.run Thread.java: 745 java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 617 java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1142 io.undertow.server.HttpServerExchange$1.run HttpServerExchange.java: 759 io.undertow.server.Connectors.executeRootHandler Connectors.java: 197 io.undertow.server.session.SessionAttachmentHandler.handleRequest SessionAttachmentHandler.java: 68 org.projectodd.wunderboss.web.async.websocket.UndertowWebsocket$2.handleRequest UndertowWebsocket.java: 103 immutant.web.internal.undertow/create-http-handler/reify/handleRequest undertow.clj: 130 astragalus.middleware/wrap-internal-error/fn middleware.clj: 33 astragalus.middleware/wrap-context/fn middleware.clj: 28 ring.middleware.x-headers/wrap-content-type-options/fn x_headers.clj: 53 ring.middleware.x-headers/wrap-frame-options/fn x_headers.clj: 38 ring.middleware.x-headers/wrap-xss-protection/fn x_headers.clj: 71 ring.middleware.not-modified/wrap-not-modified/fn not_modified.clj: 52 ring.middleware.default-charset/wrap-default-charset/fn default_charset.clj: 26 ring.middleware.content-type/wrap-content-type/fn content_type.clj: 30 ring.middleware.resource/wrap-resource/fn resource.clj: 28 ring.middleware.absolute-redirects/wrap-absolute-redirects/fn absolute_redirects.clj: 36 ring.middleware.cookies/wrap-cookies/fn cookies.clj: 161 ring.middleware.params/wrap-params/fn params.clj: 64 ring.middleware.multipart-params/wrap-multipart-params/fn multipart_params.clj: 117 ring.middleware.nested-params/wrap-nested-params/fn nested_params.clj: 84 ring.middleware.keyword-params/wrap-keyword-params/fn keyword_params.clj: 35 ring.middleware.session/wrap-session/fn session.clj: 103 ... ring.middleware.session/session-response session.clj: 70 ... ring.middleware.cookies/cookies-response cookies.clj: 121 ring.middleware.cookies/set-cookies cookies.clj: 102 clojure.core/doall core.clj: 3025 clojure.core/dorun core.clj: 3009 clojure.core/seq core.clj: 137 ... ring.middleware.cookies/write-cookies/iter/fn cookies.clj: 91 ring.middleware.cookies/write-value cookies.clj: 61 ... ring.util.codec/form-encode codec.clj: 108 ring.util.codec/eval1716/fn/G codec.clj: 81 ring.util.codec/eval1740/fn codec.clj: 93 ... clojure.core/mapcat core.clj: 2660 clojure.core/apply core.clj: 630 clojure.core/seq core.clj: 137 ... clojure.core/map/fn core.clj: 2624 ring.util.codec/eval1740/fn/fn codec.clj: 97 ring.util.codec/eval1740/fn/encode-param codec.clj: 91 ring.util.codec/eval1740/fn/encode codec.clj: 90 ring.util.codec/eval1716/fn/G codec.clj: 81 clojure.core/-cache-protocol-fn core_deftype.clj: 554 java.lang.IllegalArgumentException: No implementation of method: :form-encode* of protocol: #'ring.util.codec/FormEncodeable found for class: nil
option:enable
title:発生した例外
style:terminal
2015-09-21 追記
Luminusというと語弊がありました. ringですね.