From 778b1987a96a8591520f8b6e2c8225ccb5e73c69 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Fri, 06 Jul 2007 07:51:10 +0000
Subject: [PATCH] fix for issue #1865 (upgrade -V error)

---
 opends/resource/upgrade                                                        |    7 +++
 opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java      |   12 +++++
 opends/src/quicksetup/org/opends/quicksetup/Launcher.java                      |   19 +++++++--
 opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java     |   12 +++++
 opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractor.java       |    4 +
 opends/resource/upgrade.bat                                                    |    5 ++
 opends/src/quicksetup/org/opends/quicksetup/uninstaller/UninstallLauncher.java |   12 +++++
 opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java                 |    5 ++
 8 files changed, 66 insertions(+), 10 deletions(-)

diff --git a/opends/resource/upgrade b/opends/resource/upgrade
index b2e2857..90e2792 100644
--- a/opends/resource/upgrade
+++ b/opends/resource/upgrade
@@ -136,7 +136,8 @@
 done
 export CLASSPATH
 "${JAVA_BIN}" org.opends.quicksetup.upgrader.BuildExtractor "${@}"
-if test $? -eq 0
+RETURN_CODE=$?
+if test ${RETURN_CODE} -eq 0
 then
   # Configure the appropriate CLASSPATH.
   # Unlike BuildExtractor, the Upgrader uses
@@ -148,6 +149,10 @@
   done
   # Launch the upgrade process.
   "${JAVA_BIN}" org.opends.quicksetup.upgrader.UpgradeLauncher "${@}"
+elif test ${RETURN_CODE} -eq 50
+then
+  # Version info was on requested
+  exit 0
 else
   exit 101
 fi
diff --git a/opends/resource/upgrade.bat b/opends/resource/upgrade.bat
index 86fd044..726da68 100644
--- a/opends/resource/upgrade.bat
+++ b/opends/resource/upgrade.bat
@@ -70,6 +70,7 @@
 FOR %%x in ("%INSTANCE_ROOT%\lib\*.jar") DO call "%INSTANCE_ROOT%\lib\setcp.bat" %%x
 set CLASSPATH=%DIR_HOME%\classes;%CLASSPATH%
 "%JAVA_BIN%" org.opends.quicksetup.upgrader.BuildExtractor %*
+if %errorlevel% == 50 goto version
 if not %errorlevel% == 0 goto end
 goto upgrader
 
@@ -79,4 +80,8 @@
 "%JAVA_BIN%" org.opends.quicksetup.upgrader.UpgradeLauncher %*
 goto end
 
+:version
+rem version information was requested. Return code should be 0.
+exit /B 0
+
 :end
diff --git a/opends/src/quicksetup/org/opends/quicksetup/Launcher.java b/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
index 589ac57..599d9fb 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/Launcher.java
@@ -305,21 +305,23 @@
 
   /**
    * The main method which is called by the command lines.
+   *
+   * @return the error return code.
    */
-  public void launch() {
+  public int launch() {
     if (shouldPrintVersion())
     {
       printVersion();
-      System.exit(QuickSetupCli.SUCCESSFUL);
+      return QuickSetupCli.VERSION_PRINT;
     }
     else if (shouldPrintUsage()) {
       printUsage(false);
-      System.exit(QuickSetupCli.SUCCESSFUL);
+      return QuickSetupCli.SUCCESSFUL;
     } else if (isCli()) {
       CliApplication cliApp = createCliApplication();
       int exitCode = launchCli(args, cliApp);
       preExit(cliApp);
-      System.exit(exitCode);
+      return exitCode;
     } else {
       willLaunchGui();
       int exitCode = launchGui(args);
@@ -337,10 +339,17 @@
         exitCode = launchCli(args, cliApp);
         if (exitCode != 0) {
           preExit(cliApp);
-          System.exit(exitCode);
+          return exitCode;
         }
       }
+      else
+      {
+        return exitCode ;
+      }
     }
+
+    // We should never reach this code
+    return QuickSetupCli.UNKNOWN;
   }
 
   private void preExit(CliApplication cliApp) {
diff --git a/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java b/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
index fcb7041..f423341 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/QuickSetupCli.java
@@ -70,6 +70,11 @@
   static public int BUG = 5;
 
   /**
+   * Return code: It's not an error. Version info.
+   */
+  static public int VERSION_PRINT = 50;
+
+  /**
    * Return code for errors that are non-specified.
    */
   static public int UNKNOWN = 100;
diff --git a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
index dbed47c..b31ff8a 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/installer/InstallLauncher.java
@@ -36,6 +36,7 @@
 import org.opends.quicksetup.Launcher;
 import org.opends.quicksetup.CliApplication;
 import org.opends.quicksetup.Installation;
+import org.opends.quicksetup.QuickSetupCli;
 import org.opends.quicksetup.QuickSetupLog;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.util.ServerConstants;
@@ -79,7 +80,16 @@
       System.err.println("Unable to initialize log");
       t.printStackTrace();
     }
-    new InstallLauncher(args).launch();
+    Launcher launcher = new InstallLauncher(args);
+    int returnCode = launcher.launch();
+    if (returnCode == QuickSetupCli.VERSION_PRINT)
+    {
+      System.exit(QuickSetupCli.SUCCESSFUL);
+    }
+    else
+    {
+      System.exit(returnCode);
+    }
   }
 
   /**
diff --git a/opends/src/quicksetup/org/opends/quicksetup/uninstaller/UninstallLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/uninstaller/UninstallLauncher.java
index 535f947..f49eecd 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/uninstaller/UninstallLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/uninstaller/UninstallLauncher.java
@@ -36,6 +36,7 @@
 import org.opends.quicksetup.CliApplication;
 import org.opends.quicksetup.Launcher;
 import org.opends.quicksetup.Installation;
+import org.opends.quicksetup.QuickSetupCli;
 import org.opends.quicksetup.QuickSetupLog;
 import org.opends.quicksetup.util.Utils;
 import org.opends.server.util.ServerConstants;
@@ -74,7 +75,16 @@
       System.err.println("Unable to initialize log");
       t.printStackTrace();
     }
-    new UninstallLauncher(args).launch();
+    Launcher launcher = new UninstallLauncher(args);
+    int returnCode = launcher.launch();
+    if (returnCode == QuickSetupCli.VERSION_PRINT)
+    {
+      System.exit(QuickSetupCli.SUCCESSFUL);
+    }
+    else
+    {
+      System.exit(returnCode);
+    }
   }
 
   /**
diff --git a/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractor.java b/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractor.java
index ffc7b40..9bc272f 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractor.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractor.java
@@ -72,7 +72,9 @@
               ResourceProvider.getInstance().getMsg("error-initializing-log"));
       t.printStackTrace();
     }
-    new BuildExtractor(args).launch();
+    Launcher launcher = new BuildExtractor(args);
+    int returnCode = launcher.launch();
+    System.exit(returnCode);
   }
 
   private BuildExtractorCliHelper helper = new BuildExtractorCliHelper();
diff --git a/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java b/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
index 0999a2f..c420013 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/upgrader/UpgradeLauncher.java
@@ -33,6 +33,7 @@
 import org.opends.quicksetup.Launcher;
 import org.opends.quicksetup.CliApplication;
 import org.opends.quicksetup.Installation;
+import org.opends.quicksetup.QuickSetupCli;
 import org.opends.quicksetup.QuickSetupLog;
 import org.opends.quicksetup.i18n.ResourceProvider;
 import org.opends.quicksetup.util.Utils;
@@ -73,7 +74,16 @@
               ResourceProvider.getInstance().getMsg("error-initializing-log"));
       t.printStackTrace();
     }
-    new UpgradeLauncher(args).launch();
+    Launcher launcher = new UpgradeLauncher(args);
+    int returnCode = launcher.launch();
+    if (returnCode == QuickSetupCli.VERSION_PRINT)
+    {
+      System.exit(QuickSetupCli.SUCCESSFUL);
+    }
+    else
+    {
+      System.exit(returnCode);
+    }
   }
 
   /**

--
Gitblit v1.10.0