< prev index next >

src/hotspot/share/classfile/classLoaderData.hpp

Print this page
rev 50866 : 8203826: Chain exception from initialization in later NoClassDefFoundErrors.

@@ -217,10 +217,12 @@
   static ClassLoaderData * _the_null_class_loader_data;
 
   WeakHandle<vm_class_loader_data> _holder; // The oop that determines lifetime of this class loader
   OopHandle _class_loader;    // The instance of java/lang/ClassLoader associated with
                               // this ClassLoaderData
+  OopHandle _exception_map;   // An instance of java/util/Hashtable which maps classes
+                              // to the exceptions which occured during class initilisation.
 
   ClassLoaderMetaspace * volatile _metaspace;  // Meta-space where meta-data defined by the
                                     // classes in the class loader are allocated.
   Mutex* _metaspace_lock;  // Locks the metaspace for allocations and setup.
   bool _unloading;         // true if this class loader goes away

@@ -384,10 +386,12 @@
   void init_handle_locked(OopHandle& pd, Handle h);  // used for concurrent access to ModuleEntry::_pd field
   void add_class(Klass* k, bool publicize = true);
   void remove_class(Klass* k);
   bool contains_klass(Klass* k);
   void record_dependency(const Klass* to);
+  void record_init_exception(OopHandle cls, Handle exc, TRAPS);
+  Handle query_init_exception(OopHandle cls, TRAPS);
   PackageEntryTable* packages() { return _packages; }
   ModuleEntry* unnamed_module() { return _unnamed_module; }
   ModuleEntryTable* modules();
   bool modules_defined() { return (_modules != NULL); }
 
< prev index next >