docs: @FFDCIgnore(IllegalArgumentException.class)
      private void definePackage(final ByteResourceInformation classBytesResourceInformation, String packageName) {
          /*
           * We don't extend URL classloader so we automatically pass the manifest from the JAR to our supertype, still try to get hold of it though so that we can see if
           * we can load the information ourselves from it
           */
          Manifest manifest = classBytesResourceInformation.getManifest();
          try {
              if (manifest == null) {
                  definePackage(packageName, null, null, null, null, null, null, null);
              } else {
                  String classResourceName = classBytesResourceInformation.getResourcePath();
  
                  /*
                   * Strip the class name off the end of the package, should always have at least one '/' as we have at least one . in the name, also end with a trailing
                   * '/' to match the name style for package definitions in manifest files
                   */
                  String packageResourceName = classResourceName.substring(0, classResourceName.lastIndexOf('/') + 1);
  
                  // Default all of the package info to null
                  String specTitle = null;
                  String specVersion = null;
                  String specVendor = null;
                  String implTitle = null;
                  String implVersion = null;
                  String implVendor = null;
                  URL sealBaseUrl = null;
  
                  // See if there is a package defined in the manifest 
                  Attributes packageAttributes = manifest.getAttributes(packageResourceName);
                  if (packageAttributes != null && !packageAttributes.isEmpty()) {
                      specTitle = packageAttributes.getValue(Attributes.Name.SPECIFICATION_TITLE);
                      specVersion = packageAttributes.getValue(Attributes.Name.SPECIFICATION_VERSION);
                      specVendor = packageAttributes.getValue(Attributes.Name.SPECIFICATION_VENDOR);
  
                      implTitle = packageAttributes.getValue(Attributes.Name.IMPLEMENTATION_TITLE);
                      implVersion = packageAttributes.getValue(Attributes.Name.IMPLEMENTATION_VERSION);
                      implVendor = packageAttributes.getValue(Attributes.Name.IMPLEMENTATION_VENDOR);
  
                      String sealedValue = packageAttributes.getValue(Attributes.Name.SEALED);
                      if (sealedValue != null && Boolean.parseBoolean(sealedValue)) {
                          sealBaseUrl = classBytesResourceInformation.getResourceUrl();
                      }
                  }
  
                  definePackage(packageName, specTitle, specVersion, specVendor, implTitle, implVersion, implVendor, sealBaseUrl);
              }
          } catch (IllegalArgumentException ignored) {
              // This happens if the package is already defined but it is hard to guard against this in a thread safe way. See:
              // http://bugs.sun.com/view_bug.do?bug_id=4841786
          }
      }