From 2b830a7f0d13ebbea86725fe27acf2d4b39aa0e1 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 03 Mar 2008 16:23:05 +0000
Subject: [PATCH] Fix for issue 2994 (Java exception when ctrl-D in intercative upgrade command)

---
 opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractorCliHelper.java |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractorCliHelper.java b/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractorCliHelper.java
index 52fee78..9fc8fff 100644
--- a/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractorCliHelper.java
+++ b/opends/src/quicksetup/org/opends/quicksetup/upgrader/BuildExtractorCliHelper.java
@@ -28,6 +28,8 @@
 package org.opends.quicksetup.upgrader;
 
 import static org.opends.messages.QuickSetupMessages.*;
+import static org.opends.messages.UtilityMessages.*;
+
 import org.opends.messages.Message;
 
 import org.opends.quicksetup.UserDataException;
@@ -112,16 +114,32 @@
 
         if (choice == UPGRADE) {
           uud.setOperation(UpgradeUserData.Operation.UPGRADE);
+          int nTries = 0;
           while(true) {
             String fileName = readInput(
                     INFO_UPGRADE_FILE_PROMPT.get(), null, LOG);
-            try {
-              uud.setInstallPackage(validateInstallPackFile(fileName));
-              LOG.log(Level.INFO, "file specified interactively: " +
-                      fileName);
-              break;
-            } catch (UserDataException ude) {
-              System.out.println(ude.getMessage());
+            if (fileName != null)
+            {
+              try {
+                uud.setInstallPackage(validateInstallPackFile(fileName));
+                LOG.log(Level.INFO, "file specified interactively: " +
+                    fileName);
+                break;
+              } catch (UserDataException ude) {
+                System.out.println(ude.getMessage());
+              }
+            }
+            else
+            {
+              // There was an error reading the input: add a line return
+              System.out.println();
+            }
+            nTries++;
+            if (nTries >= CONFIRMATION_MAX_TRIES)
+            {
+              throw new UserDataException(null,
+                  ERR_CONFIRMATION_TRIES_LIMIT_REACHED.get(
+                      CONFIRMATION_MAX_TRIES));
             }
           }
         } else {

--
Gitblit v1.10.0