diff --git a/build.xml b/build.xml index fbdba80a..f108dd58 100644 --- a/build.xml +++ b/build.xml @@ -1017,7 +1017,7 @@ + excludeFilter="${findbugs.excludes}" jvmargs="-Xms512m -Xmx512m"> diff --git a/src/java/com/cloudera/sqoop/Sqoop.java b/src/java/com/cloudera/sqoop/Sqoop.java index 51cedff8..dcd0cfd1 100644 --- a/src/java/com/cloudera/sqoop/Sqoop.java +++ b/src/java/com/cloudera/sqoop/Sqoop.java @@ -20,7 +20,6 @@ import java.util.Arrays; -import org.apache.commons.cli.ParseException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.conf.Configuration; @@ -28,7 +27,7 @@ import org.apache.hadoop.util.Tool; import org.apache.hadoop.util.ToolRunner; -import com.cloudera.sqoop.tool.HelpTool; +import com.cloudera.sqoop.cli.ToolOptions; import com.cloudera.sqoop.tool.SqoopTool; /** @@ -121,13 +120,16 @@ public int run(String [] args) { options = tool.parseArguments(args, null, options, false); tool.appendArgs(this.childPrgmArgs); tool.validateOptions(options); - } catch (ParseException pe) { - // Couldn't parse arguments. Just print a usage message and exit. - new HelpTool().run(new SqoopOptions(getConf())); - return 1; - } catch (SqoopOptions.InvalidOptionsException e) { - // Error validating arguments. Print an error message and exit. + } catch (Exception e) { + // Couldn't parse arguments. + // Log the stack trace for this exception + LOG.debug(e.getMessage(), e); + // Print exception message. System.err.println(e.getMessage()); + // Print the tool usage message and exit. + ToolOptions toolOpts = new ToolOptions(); + tool.configureOptions(toolOpts); + tool.printHelp(toolOpts); return 1; // Exit on exception here. } diff --git a/src/java/com/cloudera/sqoop/tool/HelpTool.java b/src/java/com/cloudera/sqoop/tool/HelpTool.java index a615676d..dea1bb4f 100644 --- a/src/java/com/cloudera/sqoop/tool/HelpTool.java +++ b/src/java/com/cloudera/sqoop/tool/HelpTool.java @@ -78,7 +78,7 @@ private void printAvailableTools() { /** {@inheritDoc} */ public int run(SqoopOptions options) { - if (this.extraArguments.length > 0) { + if (this.extraArguments != null && this.extraArguments.length > 0) { if (hasUnrecognizedArgs(extraArguments, 1, extraArguments.length)) { return 1; }