modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java | 12 ++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
New commits: commit 3bed8cb705a9c4662b69891c1ec1c833ba8dbc64 Author: Jay Shaughnessy jshaughn@redhat.com Date: Wed Feb 27 17:59:39 2013 -0500
[Bug 888070 - Agent prompt-command doesn't properly parse command-line arguments] A sort of annoying parsing issue affecting topmost command line parsing in AgentMain.
diff --git a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java index 0c95199..d959552 100644 --- a/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java +++ b/modules/enterprise/agent/src/main/java/org/rhq/enterprise/agent/AgentMain.java @@ -3314,9 +3314,9 @@ public class AgentMain { }
if (nextToken == java.io.StreamTokenizer.TT_WORD) { - args.add(strtok.sval); + args.add(safeArg(strtok.sval)); } else if (nextToken == '"') { - args.add(strtok.sval); + args.add(safeArg(strtok.sval)); } else if ((nextToken == java.io.StreamTokenizer.TT_EOF) || (nextToken == java.io.StreamTokenizer.TT_EOL)) { keep_going = false; } @@ -3325,6 +3325,14 @@ public class AgentMain { return args.toArray(new String[args.size()]); }
+ // perform any other massaging + private String safeArg(String arg) { + // remove trailing '=' from long option args. For example --plugin= should just be --plugin for + // downstream processing. + String result = (arg.startsWith("--") && arg.endsWith("=")) ? arg.substring(0, arg.length() - 1) : arg; + return result; + } + /** * Returns the preferences for this agent. The node returned is where all preferences are to be stored. *
rhq-commits@lists.fedorahosted.org