diff --git a/src/main/java/org/springframework/shell/SimpleShellCommandLineOptions.java b/src/main/java/org/springframework/shell/SimpleShellCommandLineOptions.java index f08af645..5bc115b9 100644 --- a/src/main/java/org/springframework/shell/SimpleShellCommandLineOptions.java +++ b/src/main/java/org/springframework/shell/SimpleShellCommandLineOptions.java @@ -9,8 +9,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.logging.Logger; import org.apache.commons.io.FileUtils; +import org.springframework.roo.support.logging.HandlerUtils; +import org.springframework.shell.commands.OsCommands; /** * Not really used much, but keeping for future use @@ -18,9 +21,12 @@ import org.apache.commons.io.FileUtils; * @author vnagaraja */ public class SimpleShellCommandLineOptions { + + private static final Logger LOGGER = HandlerUtils.getLogger(SimpleShellCommandLineOptions.class); + private static final int DEFAULT_HISTORY_SIZE = 3000; String[] executeThenQuit = null; Map extraSystemProperties = new HashMap(); - int historySize = 3000; + int historySize = DEFAULT_HISTORY_SIZE; public static SimpleShellCommandLineOptions parseCommandLine(String[] args) throws IOException { SimpleShellCommandLineOptions options = new SimpleShellCommandLineOptions(); @@ -34,10 +40,24 @@ public class SimpleShellCommandLineOptions { } else if (arg.equals("--cmdfile")) { File f = new File(args[i++]); - commands.addAll(FileUtils.readLines(f)); + try { + commands.addAll(FileUtils.readLines(f)); + } catch (IOException e) { + LOGGER.warning("Could not read lines from command file: " + e.getMessage()); + } } else if (arg.equals("--histsize")) { - options.historySize = Integer.parseInt(args[i++]); + String histSizeArg = args[i++]; + try { + int histSize = Integer.parseInt(histSizeArg); + if (histSize <= 0) { + LOGGER.warning("histsize option must be > 0, using default value of " + DEFAULT_HISTORY_SIZE); + } else { + options.historySize = histSize; + } + } catch (NumberFormatException e) { + LOGGER.warning("Unable to parse histsize value [" + histSizeArg + "] to an integer "); + } } else if (arg.equals("--help")) { printUsage();