AvisoNovate / rook

Smart namespace-driven routing for Pedestal
http://rook.readthedocs.io/en/latest/index.html
Apache License 2.0
75 stars 11 forks source link

Needs better error message for improperly formed namespace specification #16

Closed hlship closed 10 years ago

hlship commented 10 years ago

Form a real application:

               java.lang.AssertionError: Assert failed: Malformed ns-spec passed to namespace-dispatch-table
                                         (symbol? ns-sym)
                         io.aviso.rook.dispatcher/canonicalize-ns-specs/fn                    dispatcher.clj:  663
                                                       clojure.core/map/fn                          core.clj: 2559
                                                 clojure.lang.LazySeq.sval                      LazySeq.java:   40
                                                  clojure.lang.LazySeq.seq                      LazySeq.java:   49
                                                    clojure.lang.Cons.next                         Cons.java:   39
                                                      clojure.lang.RT.next                           RT.java:  598
                                                         clojure.core/next                          core.clj:   64
                                                clojure.core/concat/cat/fn                          core.clj:  701
                                                 clojure.lang.LazySeq.sval                      LazySeq.java:   40
                                                  clojure.lang.LazySeq.seq                      LazySeq.java:   49
                                                       clojure.lang.RT.seq                           RT.java:  484
                                                          clojure.core/seq                          core.clj:  133
                                                       clojure.core/map/fn                          core.clj: 2551
                                                 clojure.lang.LazySeq.sval                      LazySeq.java:   40
                                                  clojure.lang.LazySeq.seq                      LazySeq.java:   49
                                      clojure.lang.ChunkedCons.chunkedNext                  ChunkedCons.java:   59
                                                   clojure.core/chunk-next                          core.clj:  667
                                                 clojure.core.protocols/fn                     protocols.clj:  101
                                               clojure.core.protocols/fn/G                     protocols.clj:   19
                                         clojure.core.protocols/seq-reduce                     protocols.clj:   31
                                                 clojure.core.protocols/fn                     protocols.clj:   54
                                               clojure.core.protocols/fn/G                     protocols.clj:   13
                                                       clojure.core/reduce                          core.clj: 6289
                         io.aviso.rook.dispatcher/namespace-dispatch-table                    dispatcher.clj:  703
                                               clojure.lang.RestFn.applyTo                       RestFn.java:  139
                                                        clojure.core/apply                          core.clj:  626
                                           io.aviso.rook/namespace-handler                          rook.clj:  105

This really needs some details, such as the form being evaluated that contained the error.

In my case, the namespace symbol ended up inside the route spec, instead of following it.