[ http://jira.codehaus.org/browse/MSUREFIRE-139?page=all ]
Brett Porter updated MSUREFIRE-139: ----------------------------------- Fix Version/s: 2.3 > Argline splits on spaces, should not when quoted > ------------------------------------------------ > > Key: MSUREFIRE-139 > URL: http://jira.codehaus.org/browse/MSUREFIRE-139 > Project: Maven 2.x Surefire Plugin > Issue Type: Bug > Affects Versions: 2.2 > Reporter: Andrea Aime > Priority: Blocker > Fix For: 2.3 > > > I need to run surefire with the following argline: > <argline>-javaagent:\"${user.home}\.m2\repository\aspectj\aspectjweaver\1.5.0\aspectjweaver-1.5.0.jar\"</argline> > <argline>-javaagent:\"C:\Documents > Settings\wolf\.m2\repository\aspectj\aspectjweaver\1.5.0\aspectjweaver-1.5.0.jar\"</argline> > The problem is, ForkConfiguration splits the arguments blindly with > StringUtils.split and the above turns into three > separate arguments: > -javaagent:"C:\Documents > and > Settings\wolf\.m2\repository\aspectj\aspectjweaver\1.5.0\aspectjweaver-1.5.0.jar" > And the the vm complains it cannot find the jar C:\Documents. > When quoted, the split should not happen! > The following method proved to support quoting properly when splitting on > spaces (I'm using it in UmlGraph): > public static String[] tokenize(String s) { > ArrayList<String> r = new ArrayList<String>(); > String remain = s; > int n = 0, pos; > remain = remain.trim(); > while (remain.length() > 0) { > if (remain.startsWith("\"")) { > // Field in quotes > pos = remain.indexOf('"', 1); > if (pos == -1) > break; > r.add(remain.substring(1, pos)); > if (pos + 1 < remain.length()) > pos++; > } else { > // Space-separated field > pos = remain.indexOf(' ', 0); > if (pos == -1) { > r.add(remain); > remain = ""; > } else > r.add(remain.substring(0, pos)); > } > remain = remain.substring(pos + 1); > remain = remain.trim(); > // - is used as a placeholder for empy fields > if (r.get(n).equals("-")) > r.set(n, ""); > n++; > } > return r.toArray(new String[0]); > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira