Pure Danger Tech


navigation
home

NetBeans crash recovery

30 Jun 2010

Twice now, I’ve had NetBeans 6.8 with Enclojure fail to start, probably due to an unclean shutdown. On the Mac, you have an option to report the failure and that allow me to at least see all of the offending stack trace and other system information. [On other OS’es I’m not sure how easy it is to get access to this information.]

The tell-tale signs look something like this:

Current thread (1033cb000):  JavaThread "pool-5-thread-3" [_thread_in_native, id=1467666432, stack(1575ad000,1577ad000)]
Stack: [1575ad000,1577ad000]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  java.util.zip.ZipFile.getNextEntry(JI)J
J  clojure.lang.EnumerationSeq.first()Ljava/lang/Object;
J  clojure.core$take__5095$fn__5097.invoke()Ljava/lang/Object;
J  clojure.lang.LazySeq.sval()Ljava/lang/Object;
J  clojure.lang.LazySeq.seq()Lclojure/lang/ISeq;
j  clojure.lang.LazySeq.first()Ljava/lang/Object;+1
J  clojure.core$first__4227.invoke(Ljava/lang/Object;)Ljava/lang/Object;
J  org.enclojure.ide.nb.editor.completion.symbol_caching$process_jar__364.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
j  org.enclojure.ide.nb.editor.completion.symbol_caching$eval__422$fn__424.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+225
j  clojure.lang.MultiFn.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+17
j  org.enclojure.ide.nb.editor.completion.symbol_caching$eval__412$fn__414.invoke(Ljava/lang/Object;)Ljava/lang/Object;+156
j  clojure.lang.MultiFn.invoke(Ljava/lang/Object;)Ljava/lang/Object;+15
J  clojure.lang.AFn.applyToHelper(Lclojure/lang/IFn;Lclojure/lang/ISeq;)Ljava/lang/Object;
j  clojure.lang.AFn.applyTo(Lclojure/lang/ISeq;)Ljava/lang/Object;+2
j  clojure.core$apply__4370.invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+26
j  org.enclojure.ide.nb.classpaths.listeners$get_cache_handlerfn__713$fn__715.doInvoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+120
J  clojure.lang.RestFn.applyTo(Lclojure/lang/ISeq;)Ljava/lang/Object;
J  clojure.core$apply__4370.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
j  org.enclojure.ide.nb.classpaths.listeners$new_queue__570$fn__572$fn__574.invoke()Ljava/lang/Object;+21
j  clojure.lang.AFn.run()V+1
j  java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4
j  java.util.concurrent.FutureTask$Sync.innerRun()V+30
j  java.util.concurrent.FutureTask.run()V+4
j  java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Ljava/lang/Runnable;)V+59
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+28
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

Since it seemed to be reading jar files during startup, I made a wild guess that this was related to some kind of jar caching in NetBeans and eventually found that going to ~/.netbeans/6.8/var/cache and doing an rm -rf * there allowed me to start again. Maybe this will help someone (or me) in the future when googling around…