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

jvergara
13.03.2008 b6e0d10650364c569020e948dfbcaf4405e34a9e
Fix for 3338 (upgrade breaks the java_home parameter)

The problem is that the upgrade wipes out the set-java-home files. This fix recreates them by calling dsjavaproperties script if they did exist before the upgrade is run. The approach of generating the files is more appropriate than keeping the old files since they might be changes in the scripts after an upgrade.

3 files modified
63 ■■■■■ changed files
opends/src/quicksetup/org/opends/quicksetup/Installation.java 11 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java 13 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/upgrader/Upgrader.java 39 ●●●●● patch | view | raw | blame | history
opends/src/quicksetup/org/opends/quicksetup/Installation.java
@@ -518,6 +518,17 @@
  }
  /**
   * Returns the path to the set-java-home file.
   *
   * @return the path to the set-java-home file.
   */
  public File getSetJavaHomeFile() {
    return new File(getLibrariesDirectory(),
        Utils.isWindows()?SET_JAVA_PROPERTIES_FILE_WINDOWS :
          SET_JAVA_PROPERTIES_FILE_UNIX);
  }
  /**
   * Creates a File object representing config/upgrade/schema.ldif.current
   * which the server creates the first time it starts if there are schema
   * customizations.
opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java
@@ -77,6 +77,7 @@
  private File backupDir;
  private UserInteraction ui;
  private boolean isSchemaCustomized;
  private boolean mustRunDSJavaProperties;
  /**
   * Creates a new parameterized instance.
@@ -164,6 +165,7 @@
      throw ApplicationException.createFileSystemException(
              INFO_ERROR_DETERMINING_CUSTOM_CONFIG.get(), e);
    }
    mustRunDSJavaProperties = installation.getSetJavaHomeFile().exists();
  }
  /**
@@ -228,6 +230,17 @@
  }
  /**
   * Tells whether a set-java-home file exists and so if we have to run
   * dsjavaproperties to regenerate it.
   * @return <CODE>true</CODE> if the set-java-home file exists and
   * <CODE>false</CODE> otherwise.
   */
  public boolean mustRunDSJavaProperties()
  {
    return mustRunDSJavaProperties;
  }
  /**
   * Migrates the tools properties file.
   * @param newPropertiesFile the new properties file.
   * @throws ApplicationException if there is an error copying the new
opends/src/quicksetup/org/opends/quicksetup/upgrader/Upgrader.java
@@ -69,6 +69,7 @@
import org.opends.quicksetup.ui.FieldName;
import org.opends.quicksetup.upgrader.ui.UpgraderReviewPanel;
import org.opends.quicksetup.upgrader.ui.WelcomePanel;
import org.opends.server.tools.JavaPropertiesTool;
import java.awt.event.WindowEvent;
import java.io.File;
@@ -709,6 +710,9 @@
      checkAbort();
      getUserData().setStartServer(
          getInstallation().getStatus().isServerRunning());
      try {
        LOG.log(Level.INFO, "initializing upgrade");
        setCurrentProgressStep(UpgradeProgressStep.INITIALIZING);
@@ -903,6 +907,41 @@
          }
        }
        if (migration.mustRunDSJavaProperties())
        {
          try {
            LOG.log(Level.INFO, "Upgrading script with java properties");
//          Launch the script
            String propertiesFile = new File(
                getInstallation().getConfigurationDirectory(),
                Installation.DEFAULT_JAVA_PROPERTIES_FILE).getAbsolutePath();
            String setJavaFile =
              getInstallation().getSetJavaHomeFile().getAbsolutePath();
            String[] args =
            {
                "--propertiesFile", propertiesFile,
                "--destinationFile", setJavaFile,
                "--quiet"
            };
            int returnValue = JavaPropertiesTool.mainCLI(args);
            if ((returnValue !=
              JavaPropertiesTool.ErrorReturnCode.SUCCESSFUL.getReturnCode()) &&
              returnValue !=
              JavaPropertiesTool.ErrorReturnCode.SUCCESSFUL_NOP.getReturnCode())
            {
              throw new ApplicationException(ReturnCode.APPLICATION_ERROR,
              ERR_ERROR_CREATING_JAVA_HOME_SCRIPTS.get(returnValue), null);
            }
            LOG.log(Level.INFO, "scripts successfully upgraded");
          } catch (ApplicationException e) {
            LOG.log(Level.INFO,
                "Error upgrading scripts", e);
            throw e;
          }
        }
        checkAbort();
        try {