116 tty->print_cr("[Purging class object from constraint for name %s," |
116 tty->print_cr("[Purging class object from constraint for name %s," |
117 " loader list:", |
117 " loader list:", |
118 probe->name()->as_C_string()); |
118 probe->name()->as_C_string()); |
119 for (int i = 0; i < probe->num_loaders(); i++) { |
119 for (int i = 0; i < probe->num_loaders(); i++) { |
120 tty->print_cr("[ [%d]: %s", i, |
120 tty->print_cr("[ [%d]: %s", i, |
121 SystemDictionary::loader_name(probe->loader_data(i))); |
121 probe->loader_data(i)->loader_name()); |
122 } |
122 } |
123 } |
123 } |
124 } |
124 } |
125 // Remove entries no longer alive from loader array |
125 // Remove entries no longer alive from loader array |
126 int n = 0; |
126 int n = 0; |
127 while (n < probe->num_loaders()) { |
127 while (n < probe->num_loaders()) { |
128 if (probe->loader_data(n)->is_unloading()) { |
128 if (probe->loader_data(n)->is_unloading()) { |
129 if (TraceLoaderConstraints) { |
129 if (TraceLoaderConstraints) { |
130 ResourceMark rm; |
130 ResourceMark rm; |
131 tty->print_cr("[Purging loader %s from constraint for name %s", |
131 tty->print_cr("[Purging loader %s from constraint for name %s", |
132 SystemDictionary::loader_name(probe->loader_data(n)), |
132 probe->loader_data(n)->loader_name(), |
133 probe->name()->as_C_string() |
133 probe->name()->as_C_string() |
134 ); |
134 ); |
135 } |
135 } |
136 |
136 |
137 // Compact array |
137 // Compact array |
143 if (TraceLoaderConstraints) { |
143 if (TraceLoaderConstraints) { |
144 ResourceMark rm; |
144 ResourceMark rm; |
145 tty->print_cr("[New loader list:"); |
145 tty->print_cr("[New loader list:"); |
146 for (int i = 0; i < probe->num_loaders(); i++) { |
146 for (int i = 0; i < probe->num_loaders(); i++) { |
147 tty->print_cr("[ [%d]: %s", i, |
147 tty->print_cr("[ [%d]: %s", i, |
148 SystemDictionary::loader_name(probe->loader_data(i))); |
148 probe->loader_data(i)->loader_name()); |
149 } |
149 } |
150 } |
150 } |
151 |
151 |
152 continue; // current element replaced, so restart without |
152 continue; // current element replaced, so restart without |
153 // incrementing n |
153 // incrementing n |
398 p1->name()->as_C_string() |
398 p1->name()->as_C_string() |
399 ); |
399 ); |
400 |
400 |
401 for (int i = 0; i < p1->num_loaders(); i++) { |
401 for (int i = 0; i < p1->num_loaders(); i++) { |
402 tty->print_cr("[ [%d]: %s", i, |
402 tty->print_cr("[ [%d]: %s", i, |
403 SystemDictionary::loader_name(p1->loader_data(i))); |
403 p1->loader_data(i)->loader_name()); |
404 } |
404 } |
405 if (p1->klass() == NULL) { |
405 if (p1->klass() == NULL) { |
406 tty->print_cr("[... and setting class object]"); |
406 tty->print_cr("[... and setting class object]"); |
407 } |
407 } |
408 } |
408 } |