< prev index next >

src/hotspot/share/oops/instanceKlass.cpp

Print this page




 267           bool is_member = nest_host_k->has_nest_member(this, CHECK_NULL);
 268           if (is_member) {
 269             // save resolved nest-host value
 270             _nest_host = nest_host_k;
 271 
 272             if (log_is_enabled(Trace, class, nestmates)) {
 273               ResourceMark rm(THREAD);
 274               log_trace(class, nestmates)("Resolved nest-host of %s to %s",
 275                                           this->external_name(), k->external_name());
 276             }
 277             return nest_host_k;
 278           }
 279         }
 280         error = "current type is not listed as a nest member";
 281       } else {
 282         error = "types are in different packages";
 283       }
 284 
 285       if (log_is_enabled(Trace, class, nestmates)) {
 286         ResourceMark rm(THREAD);
 287         log_trace(class, nestmates)("Type %s is not a nest member of resolved type %s: %s",


 288                                     this->external_name(),

 289                                     k->external_name(),

 290                                     error);
 291       }
 292 
 293       if (validationException != NULL) {
 294         ResourceMark rm(THREAD);
 295         Exceptions::fthrow(THREAD_AND_LOCATION,
 296                            validationException,
 297                            "Type %s is not a nest member of %s: %s",
 298                            this->external_name(),

 299                            k->external_name(),

 300                            error
 301                            );
 302       }
 303       return NULL;
 304     } else {
 305       if (log_is_enabled(Trace, class, nestmates)) {
 306         ResourceMark rm(THREAD);
 307         log_trace(class, nestmates)("Type %s is not part of a nest: setting nest-host to self",
 308                                     this->external_name());
 309       }
 310       // save resolved nest-host value
 311       return (_nest_host = this);
 312     }
 313   }
 314   return nest_host_k;
 315 }
 316 
 317 // check if 'this' and k are nestmates (same nest_host), or k is our nest_host,
 318 // or we are k's nest_host - all of which is covered by comparing the two
 319 // resolved_nest_hosts




 267           bool is_member = nest_host_k->has_nest_member(this, CHECK_NULL);
 268           if (is_member) {
 269             // save resolved nest-host value
 270             _nest_host = nest_host_k;
 271 
 272             if (log_is_enabled(Trace, class, nestmates)) {
 273               ResourceMark rm(THREAD);
 274               log_trace(class, nestmates)("Resolved nest-host of %s to %s",
 275                                           this->external_name(), k->external_name());
 276             }
 277             return nest_host_k;
 278           }
 279         }
 280         error = "current type is not listed as a nest member";
 281       } else {
 282         error = "types are in different packages";
 283       }
 284 
 285       if (log_is_enabled(Trace, class, nestmates)) {
 286         ResourceMark rm(THREAD);
 287         log_trace(class, nestmates)
 288           ("Type %s (loader: %s) is not a nest member of "
 289            "resolved type %s (loader: %s): %s",
 290            this->external_name(),
 291            this->class_loader_data()->loader_name_and_id(),
 292            k->external_name(),
 293            k->class_loader_data()->loader_name_and_id(),
 294            error);
 295       }
 296 
 297       if (validationException != NULL) {
 298         ResourceMark rm(THREAD);
 299         Exceptions::fthrow(THREAD_AND_LOCATION,
 300                            validationException,
 301                            "Type %s (loader: %s) is not a nest member of %s (loader: %s): %s",
 302                            this->external_name(),
 303                            this->class_loader_data()->loader_name_and_id(),
 304                            k->external_name(),
 305                            k->class_loader_data()->loader_name_and_id(),
 306                            error
 307                            );
 308       }
 309       return NULL;
 310     } else {
 311       if (log_is_enabled(Trace, class, nestmates)) {
 312         ResourceMark rm(THREAD);
 313         log_trace(class, nestmates)("Type %s is not part of a nest: setting nest-host to self",
 314                                     this->external_name());
 315       }
 316       // save resolved nest-host value
 317       return (_nest_host = this);
 318     }
 319   }
 320   return nest_host_k;
 321 }
 322 
 323 // check if 'this' and k are nestmates (same nest_host), or k is our nest_host,
 324 // or we are k's nest_host - all of which is covered by comparing the two
 325 // resolved_nest_hosts


< prev index next >