/**
   * Call bundle's BundleActivator.start() This method is called by Bundle.startWorker to start the
   * bundle.
   *
   * @exception BundleException if the bundle has a class that implements the BundleActivator
   *     interface, but Framework couldn't instantiate it, or the BundleActivator.start() method
   *     failed
   */
  protected void start() throws BundleException {
    activator = bundle.loadBundleActivator();

    if (activator != null) {
      try {
        startActivator(activator);
      } catch (BundleException be) {
        activator = null;
        throw be;
      }
    }

    /* activator completed successfully. We must use this
    same activator object when we stop this bundle. */
  }