comparison src/share/vm/classfile/dictionary.hpp @ 20350:c3990b8c710e hs25.40-b07

8054402: "klass->is_loader_alive(_is_alive)) failed: must be alive" for anonymous classes Summary: Because anonymous classes are not in the system dictionary, we have to set 'unloading_occurred' based on 'CLDG::do_unloading()'. Added jtreg test. Reviewed-by: kvn, coleenp
author thartmann
date Mon, 25 Aug 2014 08:20:17 +0200
parents 2c6ef90f030a
children 6e0cb14ce59b
comparison
equal deleted inserted replaced
20349:7fa57b65c27f 20350:c3990b8c710e
106 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) { 106 static bool is_strongly_reachable(ClassLoaderData* loader_data, Klass* klass) {
107 assert (klass != NULL, "should have non-null klass"); 107 assert (klass != NULL, "should have non-null klass");
108 return (loader_data->is_the_null_class_loader_data() || !ClassUnloading); 108 return (loader_data->is_the_null_class_loader_data() || !ClassUnloading);
109 } 109 }
110 110
111 // Unload (that is, break root links to) all unmarked classes and 111 // Unload (that is, break root links to) all unmarked classes and loaders.
112 // loaders. Returns "true" iff something was unloaded. 112 void do_unloading();
113 bool do_unloading();
114 113
115 // Protection domains 114 // Protection domains
116 Klass* find(int index, unsigned int hash, Symbol* name, 115 Klass* find(int index, unsigned int hash, Symbol* name,
117 ClassLoaderData* loader_data, Handle protection_domain, TRAPS); 116 ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
118 bool is_valid_protection_domain(int index, unsigned int hash, 117 bool is_valid_protection_domain(int index, unsigned int hash,