mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
10.00.2009 b13d03cf6a0c29dcb57fae4c4184320af36a90e5
Complete a potential fix for issue 4394 (Quicksetup doesn't work with openJDK 1.6 64 bits (fedora core 12))

The fix is not really a fix for this, the code silently ignored the non existence of the javax.jnlp.DownloadService. The modifications consist basically on identifying this situation and providing an error message informing of this and of the alternatives the user has to setup OpenDS (download a ZIP file).

With these modifications, the error message will appear directly once the basic classes are downloaded (and the user does not have to wait till 'Finished' is clicked to get the error).
3 files modified
56 ■■■■ changed files
opendj-sdk/opends/src/messages/messages/quicksetup.properties 2 ●●● patch | view | raw | blame | history
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java 30 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java 24 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/messages/messages/quicksetup.properties
@@ -262,7 +262,7 @@
INFO_DOWNLOADING_ERROR=An error occurred downloading remote file(s) %s.
INFO_DOWNLOADING_ERROR_NO_SERVICE_FOUND=An error occurred.  Could not find \
 service '%s'.   Setup using JNLP is not supported with your JDK \
 installation.  Download a ZIP installation, un-zip it and run 'setup' to \
 installation.  Download a ZIP installation, un-zip it and run script %s to \
 install the server.
INFO_DOWNLOADING_RATIO=Downloading: %s%% Completed.
INFO_EMPTY_ADMINISTRATOR_PWD=You must provide a Global Administrative User \
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -99,6 +99,12 @@
  private final static String CUSTOMIZATION_CLASS_NAME =
    "org.opends.server.util.ReleaseDefinition";
  /**
   * The service name required by the JNLP downloader.
   */
  public static String JNLP_SERVICE_NAME = "javax.jnlp.DownloadService";
  /**
   * Enumeration that specify if the operation applies to the install directory
   * only, to the instance directory only, or both.
@@ -1801,6 +1807,30 @@
        }
      }
    }
    if (Utils.isWebStart())
    {
      // Check that the JNLP service exists.
      try
      {
        javax.jnlp.ServiceManager.lookup(JNLP_SERVICE_NAME);
      }
      catch (Throwable t)
      {
        String setupFile;
        if (Utils.isWindows())
        {
          setupFile = Installation.WINDOWS_SETUP_FILE_NAME;
        }
        else
        {
          setupFile = Installation.UNIX_SETUP_FILE_NAME;
        }
        throw new IncompatibleVersionException(
            INFO_DOWNLOADING_ERROR_NO_SERVICE_FOUND.get(
                JNLP_SERVICE_NAME, setupFile),
            t);
      }
    }
  }
  /**
opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/webstart/WebStartDownloader.java
@@ -41,7 +41,9 @@
import org.opends.quicksetup.ApplicationException;
import org.opends.quicksetup.Installation;
import org.opends.quicksetup.ReturnCode;
import org.opends.quicksetup.util.Utils;
import org.opends.server.util.SetupUtils;
import static org.opends.quicksetup.util.Utils.*;
@@ -61,7 +63,6 @@
  static private final Logger LOG =
    Logger.getLogger(WebStartDownloader.class.getName());
  /**
   * Returns the name of the zip file name that contains all the installation.
   * @return the name of the zip file name that contains all the installation.
@@ -253,19 +254,28 @@
      throws IOException, ApplicationException
  {
    DownloadService ds;
    String serviceName = "javax.jnlp.DownloadService";
    try
    {
      ds =
          (DownloadService) ServiceManager.lookup(
              "javax.jnlp.DownloadService");
          (DownloadService) ServiceManager.lookup(Utils.JNLP_SERVICE_NAME);
    } catch (UnavailableServiceException e)
    {
      LOG.log(Level.SEVERE, "Could not find service: "+serviceName, e);
      LOG.log(Level.SEVERE, "Could not find service: "+
          Utils.JNLP_SERVICE_NAME, e);
      String setupFile;
      if (Utils.isWindows())
      {
        setupFile = Installation.WINDOWS_SETUP_FILE_NAME;
      }
      else
      {
        setupFile = Installation.UNIX_SETUP_FILE_NAME;
      }
      throw new ApplicationException(
        ReturnCode.DOWNLOAD_ERROR,
        getThrowableMsg(
            INFO_DOWNLOADING_ERROR_NO_SERVICE_FOUND.get(serviceName), e), e);
        getThrowableMsg(INFO_DOWNLOADING_ERROR_NO_SERVICE_FOUND.get(
            Utils.JNLP_SERVICE_NAME, setupFile),
            e), e);
    }
    String[] urls = getJarUrls();