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 Type: Bug Versions: 2.2 Reporter: Andrea Aime Priority: Blocker 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