2011-11-03 16 views
9

Recibo errores de compilación mientras ejecuto lein run en mi proyecto Noir. Estaba funcionando, y de repente dejó de funcionar. Mi sospecha era que el error está relacionado con tratar de incluir [org.pegdown/pegdown "1.1.0"] en mi vector de dependencias en el archivo del proyecto, pero no estoy seguro. Quité esa línea, ejecuté lein clean; lein deps y luego intenté con lein run nuevamente, pero el error persiste.Confundir errores de compilación de Clojure: ¿mal informe de línea?

A continuación se muestran dos errores por separado que recibo. No sé qué desencadena ninguno de los errores. Todos mis archivos (en el espacio de nombres "benekastah") informan un error en la línea 1, que normalmente es una llamada normal ns.

El segundo error parece indicar que el problema está en post_modify.clj, pero que estaba trabajando antes y no han cambiado.

Probé la solución encontrada here y no nos parece funcionar.

¿Alguna idea de estos confusos errores?

de error 1:

Exception in thread "main" java.lang.RuntimeException: java.lang.ExceptionInInitializerError 
at clojure.lang.Util.runtimeException(Util.java:165) 
at clojure.lang.Compiler.eval(Compiler.java:6476) 
at clojure.lang.Compiler.load(Compiler.java:6902) 
at clojure.lang.RT.loadResourceScript(RT.java:357) 
at clojure.lang.RT.loadResourceScript(RT.java:348) 
at clojure.lang.RT.load(RT.java:427) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at user$eval1.invoke(NO_SOURCE_FILE:1) 
at clojure.lang.Compiler.eval(Compiler.java:6465) 
at clojure.lang.Compiler.eval(Compiler.java:6454) 
at clojure.lang.Compiler.eval(Compiler.java:6431) 
at clojure.core$eval.invoke(core.clj:2795) 
at clojure.main$eval_opt.invoke(main.clj:296) 
at clojure.main$initialize.invoke(main.clj:315) 
at clojure.main$null_opt.invoke(main.clj:348) 
at clojure.main$main.doInvoke(main.clj:426) 
at clojure.lang.RestFn.invoke(RestFn.java:421) 
at clojure.lang.Var.invoke(Var.java:405) 
at clojure.lang.AFn.applyToHelper(AFn.java:163) 
at clojure.lang.Var.applyTo(Var.java:518) 
at clojure.main.main(main.java:37) 
Caused by: java.lang.ExceptionInInitializerError 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:604) 
at clojure.core$use.doInvoke(core.clj:5363) 
at clojure.lang.RestFn.invoke(RestFn.java:512) 
at benekastah.views.common$loading__4505__auto__.invoke(common.clj:1) 
at benekastah.views.common__init.load(Unknown Source) 
at benekastah.views.common__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:512) 
at benekastah.views.blog.index$loading__4505__auto__.invoke(index.clj:1) 
at benekastah.views.blog.index__init.load(Unknown Source) 
at benekastah.views.blog.index__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at noir.server$load_views.doInvoke(server.clj:25) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at benekastah.server$eval10.invoke(server.clj:5) 
at clojure.lang.Compiler.eval(Compiler.java:6465) 
... 31 more 
Caused by: java.lang.NullPointerException 
at clojure.core$refer.doInvoke(core.clj:3775) 
at clojure.lang.RestFn.invoke(RestFn.java:410) 
at clojure.lang.AFn.applyToHelper(AFn.java:161) 
at clojure.lang.RestFn.applyTo(RestFn.java:132) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_lib.doInvoke(core.clj:5252) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:604) 
at clojure.core$use.doInvoke(core.clj:5363) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at benekastah.css.base__init.load(Unknown Source) 
at benekastah.css.base__init.<clinit>(Unknown Source) 
... 92 more 

error 2:

Exception in thread "main" java.lang.NullPointerException, compiling:(post_modify.clj:1) 
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3342) 
at clojure.lang.Compiler.compile1(Compiler.java:6985) 
at clojure.lang.Compiler.compile1(Compiler.java:6975) 
at clojure.lang.Compiler.compile(Compiler.java:7046) 
at clojure.lang.RT.compile(RT.java:385) 
at clojure.lang.RT.load(RT.java:425) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at noir.server$load_views.doInvoke(server.clj:25) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3337) 
at clojure.lang.Compiler.compile1(Compiler.java:6985) 
at clojure.lang.Compiler.compile(Compiler.java:7046) 
at clojure.lang.RT.compile(RT.java:385) 
at clojure.lang.RT.load(RT.java:425) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$compile$fn__4615.invoke(core.clj:5397) 
at clojure.core$compile.invoke(core.clj:5396) 
at user$eval27.invoke(NO_SOURCE_FILE:1) 
at clojure.lang.Compiler.eval(Compiler.java:6465) 
at clojure.lang.Compiler.eval(Compiler.java:6455) 
at clojure.lang.Compiler.eval(Compiler.java:6431) 
at clojure.core$eval.invoke(core.clj:2795) 
at clojure.main$eval_opt.invoke(main.clj:296) 
at clojure.main$initialize.invoke(main.clj:315) 
at clojure.main$null_opt.invoke(main.clj:348) 
at clojure.main$main.doInvoke(main.clj:426) 
at clojure.lang.RestFn.invoke(RestFn.java:421) 
at clojure.lang.Var.invoke(Var.java:405) 
at clojure.lang.AFn.applyToHelper(AFn.java:163) 
at clojure.lang.Var.applyTo(Var.java:518) 
at clojure.main.main(main.java:37) 
Caused by: java.lang.NullPointerException 
at clojure.lang.Compiler$ObjExpr.emitVar(Compiler.java:4728) 
at clojure.lang.Compiler$DefExpr.emit(Compiler.java:395) 
at clojure.lang.Compiler.compile1(Compiler.java:6984) 
at clojure.lang.Compiler.compile(Compiler.java:7046) 
at clojure.lang.RT.compile(RT.java:385) 
at clojure.lang.RT.load(RT.java:425) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:551) 
at benekastah.views.blog.post_modify$loading__4505__auto__.invoke(post_modify.clj:1) 
at clojure.lang.AFn.applyToHelper(AFn.java:159) 
at clojure.lang.AFn.applyTo(AFn.java:151) 
at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:3337) 
... 46 more 
Exception in thread "main" java.lang.RuntimeException: java.lang.ExceptionInInitializerError 
at clojure.lang.Util.runtimeException(Util.java:165) 
at clojure.lang.Compiler.eval(Compiler.java:6476) 
at clojure.lang.Compiler.load(Compiler.java:6902) 
at clojure.lang.RT.loadResourceScript(RT.java:357) 
at clojure.lang.RT.loadResourceScript(RT.java:348) 
at clojure.lang.RT.load(RT.java:427) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at user$eval1.invoke(NO_SOURCE_FILE:1) 
at clojure.lang.Compiler.eval(Compiler.java:6465) 
at clojure.lang.Compiler.eval(Compiler.java:6454) 
at clojure.lang.Compiler.eval(Compiler.java:6431) 
at clojure.core$eval.invoke(core.clj:2795) 
at clojure.main$eval_opt.invoke(main.clj:296) 
at clojure.main$initialize.invoke(main.clj:315) 
at clojure.main$null_opt.invoke(main.clj:348) 
at clojure.main$main.doInvoke(main.clj:426) 
at clojure.lang.RestFn.invoke(RestFn.java:421) 
at clojure.lang.Var.invoke(Var.java:405) 
at clojure.lang.AFn.applyToHelper(AFn.java:163) 
at clojure.lang.Var.applyTo(Var.java:518) 
at clojure.main.main(main.java:37) 
Caused by: java.lang.ExceptionInInitializerError 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:604) 
at clojure.core$use.doInvoke(core.clj:5363) 
at clojure.lang.RestFn.invoke(RestFn.java:512) 
at benekastah.views.common$loading__4505__auto__.invoke(common.clj:1) 
at benekastah.views.common__init.load(Unknown Source) 
at benekastah.views.common__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:512) 
at benekastah.views.blog.index$loading__4505__auto__.invoke(index.clj:1) 
at benekastah.views.blog.index__init.load(Unknown Source) 
at benekastah.views.blog.index__init.<clinit>(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at clojure.lang.RT.loadClassForName(RT.java:2030) 
at clojure.lang.RT.load(RT.java:417) 
at clojure.lang.RT.load(RT.java:398) 
at clojure.core$load$fn__4610.invoke(core.clj:5386) 
at clojure.core$load.doInvoke(core.clj:5385) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at clojure.core$load_one.invoke(core.clj:5200) 
at clojure.core$load_lib.doInvoke(core.clj:5237) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$require.doInvoke(core.clj:5352) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at noir.server$load_views.doInvoke(server.clj:25) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at benekastah.server$eval10.invoke(server.clj:5) 
at clojure.lang.Compiler.eval(Compiler.java:6465) 
... 31 more 
Caused by: java.lang.NullPointerException 
at clojure.core$refer.doInvoke(core.clj:3775) 
at clojure.lang.RestFn.invoke(RestFn.java:410) 
at clojure.lang.AFn.applyToHelper(AFn.java:161) 
at clojure.lang.RestFn.applyTo(RestFn.java:132) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_lib.doInvoke(core.clj:5252) 
at clojure.lang.RestFn.applyTo(RestFn.java:142) 
at clojure.core$apply.invoke(core.clj:602) 
at clojure.core$load_libs.doInvoke(core.clj:5271) 
at clojure.lang.RestFn.applyTo(RestFn.java:137) 
at clojure.core$apply.invoke(core.clj:604) 
at clojure.core$use.doInvoke(core.clj:5363) 
at clojure.lang.RestFn.invoke(RestFn.java:408) 
at benekastah.css.base__init.load(Unknown Source) 
at benekastah.css.base__init.<clinit>(Unknown Source) 
... 92 more 

benekastah.views.blog.post_modify.clj

(ns benekastah.views.blog.post-modify 
    (:require [noir.response :as resp] 
      [somnium.congomongo :as congo] 
      [clj-time.core :as time] 
      [clj-time.format :as time-format] 
      [clj-time.coerce :as time-coerce] 
      [clojure.string :as cl-string] 
      [benekastah.lib.string :as b-string]) 
    (:use noir.core 
     benekastah.models.db)) 

(defn- save-post 
    [post] 
    (try (save! :post post) 
     (resp/redirect "/") 
    (catch Exception e 
     {:status 500 
     :body (str "Could not save post: " e)}))) 

(defpage [:post "/post"] [& param-lists] 
     (let [params (populate-defaults 
         :post 
         (apply hash-map (apply concat param-lists))) 
       {date :date, title :title } params 
       slug (str 
         (time-format/unparse 
         (time-format/formatters :date) 
         (time-coerce/from-date date)) 
         "_" 
         (cl-string/replace (cl-string/trim title) 
             #"[^\w\-]" 
             "_")) 
       p (merge params {:slug slug})] 
      (save-post p))) 

(defpage [:put "/post"] {:keys [id]} 
     (let [post (congo/fetch-by-id id)] 
      (save-post post))) 

(defpage [:delete "/post"] {:keys [id]} 
     (let [post (congo/fetch-by-id id)] 
      (congo/destroy! :post post))) 
+2

una respuesta a su pregunta, pero este tipo de cuestiones se evitan por lo general si se toma ventaja de la repl para construir gradualmente su aplicación, en lugar de escribir un montón de código luego ver si funciona todo. –

+0

De acuerdo.Tiendo a desarrollarme de esa manera, lo que me hace aún más confundido. El paso después del cual se produjo la falla se revirtió, pero el problema persiste. Estoy tratando de volver sobre mis pasos, pero sin éxito. ¿Hay una clase particular de errores con los que esto pueda estar relacionado? – benekastah

+1

En la parte inferior de ambos rastreos de la pila hay una NullPointerException al intentar referir algo durante la carga de benekastah.css.base. Puede que quieras mirar allí. Además, 1.3.0 tiene rastros de pila más bonitos. –

Respuesta

1

Así es como yo "fijo" mi problema: En Respuesta al comentario de @ Alex que sugiere que miro a benekastah.css.base, comenté la mayor parte de ese archivo y reinicié el servidor. En este punto, el mensaje de error apuntaba a benekastah.css.blog, donde volví a comentar la mayor parte del archivo. Luego, el mensaje de error apuntó a benekastah.css.theme (el último archivo en el grupo benekastah.css. *), En cuyo momento di los mismos pasos que con los otros dos archivos. Entonces el servidor funcionó. Entonces, trabajando con las contraseñas, descomentaba el código en cada archivo, y todo parece estar funcionando bien de nuevo. También pude agregar la dependencia de nuevo a Pegdown. Extraño.

Si alguien tiene alguna idea de la forma en que clojure, Leiningen o java obras que darían lugar a cualquiera de esta creación de sentido, me interesaría escucharlo.

Para que conste, estoy usando para mi cssgen benekastah.css. * Archivos. Parece que funciona bien en su mayor parte.

3

tuve un problema similar, y, de hecho llegué a la raíz del problema. Resulta que tenía mis propias definiciones de funciones get y remove en mi código. Esto de alguna manera interfería con las definiciones de funciones get y remove de clojure.core en ese espacio de nombres. Esos NPE (en compilación) fueron el resultado. Para solucionar el problema, todo lo que hice fue cambiar el nombre de las definiciones de mi función a getk y removek.

HTH

+0

Usar nombres estúpidos como 'getk' derrota todo el punto de los espacios de nombres :) recurrir a' refer-clojure' en su lugar es la solución limpia. – vemv

16

Esto se produce cuando una función en un espacio de nombres reemplaza una función básica, como get. Puede encontrar alguna discusión sobre esto en la lista de correo de clojure-dev here. La solución, en lugar de cambiar el nombre de sus funciones, es colocar (:refer-clojure :exclude [name-of-replaced-function]) en su formulario ns.

No
+0

Parece que se trata de un comentario al @Nutritioustim. +1, sin embargo. Me he estado preguntando sobre esto por un tiempo. – benekastah

+0

Aaa y esto acaba de resolver un problema realmente confuso para mí. ¡Gracias de nuevo! – benekastah

+0

¡La respuesta de Dave me ayuda a salir del problema! – qiuxiafei

Cuestiones relacionadas