You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ve...@apache.org on 2016/03/30 03:02:40 UTC
sqoop git commit: SQOOP-2896: Sqoop exec job fails with SQLException
Access denied for user
Repository: sqoop
Updated Branches:
refs/heads/trunk 1dd50cfb2 -> 729e681f1
SQOOP-2896: Sqoop exec job fails with SQLException Access denied for user
(Sowmya Ramesh via Venkat Ranganathan)
Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/729e681f
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/729e681f
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/729e681f
Branch: refs/heads/trunk
Commit: 729e681f106d58d4048e002a00b1112cec3a0a5b
Parents: 1dd50cf
Author: Venkat Ranganathan <ve...@hortonworks.com>
Authored: Tue Mar 29 18:02:19 2016 -0700
Committer: Venkat Ranganathan <ve...@hortonworks.com>
Committed: Tue Mar 29 18:02:19 2016 -0700
----------------------------------------------------------------------
src/java/org/apache/sqoop/tool/JobTool.java | 32 +++++++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/729e681f/src/java/org/apache/sqoop/tool/JobTool.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/sqoop/tool/JobTool.java b/src/java/org/apache/sqoop/tool/JobTool.java
index 2eafac3..8e1669c 100644
--- a/src/java/org/apache/sqoop/tool/JobTool.java
+++ b/src/java/org/apache/sqoop/tool/JobTool.java
@@ -28,6 +28,7 @@ import java.util.TreeMap;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.ParseException;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,6 +51,7 @@ public class JobTool extends com.cloudera.sqoop.tool.BaseSqoopTool {
public static final Log LOG = LogFactory.getLog(
JobTool.class.getName());
+ private static final String DASH_STR = "--";
private enum JobOp {
JobCreate,
@@ -210,7 +212,35 @@ public class JobTool extends com.cloudera.sqoop.tool.BaseSqoopTool {
SqoopOptions clonedOpts = (SqoopOptions) childOpts.clone();
clonedOpts.setParent(childOpts);
- return childTool.run(clonedOpts);
+ String [] childArgv = childOpts.getExtraArgs();
+ if (childArgv == null || childArgv.length == 0) {
+ childArgv = new String[0];
+ }
+
+ int dashPos = getDashPosition(extraArguments);
+ if (dashPos < extraArguments.length) {
+ String[] extraArgs = Arrays.copyOfRange(extraArguments, dashPos + 1,
+ extraArguments.length);
+ if (childArgv == null || childArgv.length == 0) {
+ childArgv = extraArgs;
+ } else {
+ // Find the second dash pos
+ int dashPos2 = getDashPosition(extraArgs);
+ if (dashPos2 >= extraArgs.length) {
+ // if second dash is not present add it
+ extraArgs = ArrayUtils.addAll(extraArgs, DASH_STR);
+ }
+ childArgv = ArrayUtils.addAll(extraArgs, childArgv);
+ }
+ }
+
+ int confRet = configureChildTool(clonedOpts, childTool, childArgv);
+ if (0 != confRet) {
+ // Error.
+ return confRet;
+ }
+
+ return childTool.run(clonedOpts);
}
private int showJob(SqoopOptions opts) throws IOException {