diff -r 74533f63b116 -r d2a62e0f25eb src/share/vm/code/codeCache.hpp --- a/src/share/vm/code/codeCache.hpp Wed Jun 27 15:23:36 2012 +0200 +++ b/src/share/vm/code/codeCache.hpp Thu Jun 28 17:03:16 2012 -0400 @@ -88,6 +88,9 @@ // Lookup that does not fail if you lookup a zombie method (if you call this, be sure to know // what you are doing) static CodeBlob* find_blob_unsafe(void* start) { + // NMT can walk the stack before code cache is created + if (_heap == NULL) return NULL; + CodeBlob* result = (CodeBlob*)_heap->find_start(start); // this assert is too strong because the heap code will return the // heapblock containing start. That block can often be larger than