return definePackage(name, specTitle, specVersion, specVendor, implTitle, implVersion, implVendor, url);
return definePackage(name, specTitle, specVendor, specVersion, implTitle, implVendor, implVersion, url);
  protected Package definePackage(String name, Manifest manifest, URL url)     throws IllegalArgumentException  {    Attributes attr = manifest.getMainAttributes();    String specTitle = attr.getValue(Attributes.Name.SPECIFICATION_TITLE);    String specVersion = attr.getValue(Attributes.Name.SPECIFICATION_VERSION);    String specVendor = attr.getValue(Attributes.Name.SPECIFICATION_VENDOR);    String implTitle = attr.getValue(Attributes.Name.IMPLEMENTATION_TITLE);    String implVersion = attr.getValue(Attributes.Name.IMPLEMENTATION_VERSION);    String implVendor = attr.getValue(Attributes.Name.IMPLEMENTATION_VENDOR);    // Look if the Manifest indicates that this package is sealed    // XXX - most likely not completely correct!    // Shouldn't we also check the sealed attribute of the complete jar?    // http://java.sun.com/products/jdk/1.4/docs/guide/extensions/spec.html#bundled    // But how do we get that jar manifest here?    String sealed = attr.getValue(Attributes.Name.SEALED);    if ("false".equals(sealed))      // make sure that the URL is null so the package is not sealed      url = null;    return definePackage(name, specTitle, specVersion, specVendor, implTitle,                         implVersion, implVendor, url);  }