code: protected final Class<?> defineClass(String name,
                                           byte[] b, int off, int len,
                                           CodeSource cs)
      {
          return defineClass(name, b, off, len, getProtectionDomain(cs));
      }
docs: Converts an array of bytes into an instance of class Class,
  with an optional CodeSource. Before the
  class can be used it must be resolved.
  <p>
  If a non-null CodeSource is supplied a ProtectionDomain is
  constructed and associated with the class being defined.
  <p>
  @param      name the expected name of the class, or {@code null}
  if not known, using '.' and not '/' as the separator
  and without a trailing ".class" suffix.
  @param      b    the bytes that make up the class data. The bytes in
  positions {@code off} through {@code off+len-1}
  should have the format of a valid class file as defined by
  <cite>The Java&trade; Virtual Machine Specification</cite>.
  @param      off  the start offset in {@code b} of the class data
  @param      len  the length of the class data
  @param      cs   the associated CodeSource, or {@code null} if none
  @return the {@code Class} object created from the data,
  and optional CodeSource.
  @exception  ClassFormatError if the data did not contain a valid class
  @exception  IndexOutOfBoundsException if either {@code off} or
  {@code len} is negative, or if
  {@code off+len} is greater than {@code b.length}.
  
  @exception  SecurityException if an attempt is made to add this class
  to a package that contains classes that were signed by
  a different set of certificates than this class, or if
  the class name begins with "java.".