private void loadManifest(){
  if (_isManifestRead)   return;
synchronized (this) {
    if (_isManifestRead)     return;
    try {
      _manifest=_jarPath.getManifest();
      if (_manifest == null)       return;
      Attributes attr=_manifest.getMainAttributes();
      if (attr != null)       addManifestPackage("",attr);
      Map<String,Attributes> entries=_manifest.getEntries();
      for (      Map.Entry<String,Attributes> entry : entries.entrySet()) {
        String pkg=entry.getKey();
        attr=entry.getValue();
        if (attr == null)         continue;
        addManifestPackage(pkg,attr);
      }
    }
 catch (    IOException e) {
      log.log(Level.WARNING,e.toString(),e);
    }
 finally {
      _isManifestRead=true;
    }
  }
}

private void loadManifest ( ) { if ( _isManifestRead ) return ; synchronized ( this ) { if ( _isManifestRead ) return ; try { _manifest = _jarPath . getManifest ( ) ; if ( _manifest == null ) return ; Attributes attr = _manifest . getMainAttributes ( ) ; if ( attr != null ) addManifestPackage ( "" , attr ) ; Map < String , Attributes > entries = _manifest . getEntries ( ) ; for ( Map . Entry < String , Attributes > entry : entries . entrySet ( ) ) { String pkg = entry . getKey ( ) ; attr = entry . getValue ( ) ; if ( attr == null ) continue ; addManifestPackage ( pkg , attr ) ; } } catch ( IOException e ) { log . log ( Level . WARNING , e . toString ( ) , e ) ; } finally { _isManifestRead = true ; } } }
reads the jar ' s manifest .
