commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Siegfried Goeschl <sgoes...@gmx.at>
Subject Re: [exec] Execution fails with quoted arguments
Date Thu, 24 Apr 2014 12:50:31 GMT
Hi Paulo,

some stupid thought and it might not even be related to your problem

"aux" is under Windows a reserved and can't be used as file name - see 
http://en.wikipedia.org/wiki/Filename - are you running the stuff under 
WIndows?

Is it possible to rename the offending file to something different then 
".aux"

Cheers,

Siegfried Goeschl

On 24.04.14 14:36, Paulo Roberto Massa Cereda wrote:
> Dear friends,
>
> For some time, I was sure issue #54 
> (https://issues.apache.org/jira/browse/EXEC-54) was the culprit of one 
> my programs misbehaving. Today, I decided to devote some time in 
> understanding what's been happening in my code and apparently issue 
> #54 does not appear to be culprit here!
>
> Here's a sample code that might explain what's happening. Note that I 
> use two programs here (pdflatex and bibtex, hopefully available from 
> any recent TeX distribution), and similar expansions lead to different 
> results. Apologies for the long code excerpt.
>
> ===============================================================
> @Test
>     public void testCommonsExecExecution() throws IOException, 
> InterruptedException {
>         String program = "bibtex";
>         String argument = "file with spaces.aux";
>         CommandLine line = new CommandLine(program);
>         line.addArgument(argument);
>
>         // so far, everything ok
>         assertEquals(line.toString(), "[bibtex, \"file with 
> spaces.aux\"]");
>
>         DefaultExecuteResultHandler resultHandler = new 
> DefaultExecuteResultHandler();
>         ByteArrayOutputStream out = new ByteArrayOutputStream();
>         PumpStreamHandler streamHandler = new PumpStreamHandler(out, 
> out);
>
>         DefaultExecutor executor = new DefaultExecutor();
>         executor.setStreamHandler(streamHandler);
>         executor.execute(line, resultHandler);
>         resultHandler.waitFor();
>
>         // bibtex is executed with "file with spaces.aux".aux,
>         // which is not what I expected
>         assertEquals(out.toString(), "I couldn't open file name 
> `\"file with spaces.aux\".aux'\n");
>
>         program = "pdflatex";
>         argument = "file with spaces.tex";
>
>         line = new CommandLine(program);
>         line.addArgument(argument);
>
>         // so far, everything ok
>         assertEquals(line.toString(), "[pdflatex, \"file with 
> spaces.tex\"]");
>
>         resultHandler = new DefaultExecuteResultHandler();
>         out = new ByteArrayOutputStream();
>         streamHandler = new PumpStreamHandler(out, out);
>
>         executor = new DefaultExecutor();
>         executor.setStreamHandler(streamHandler);
>         executor.execute(line, resultHandler);
>         resultHandler.waitFor();
>
>         // here, pdflatex works with "file with spaces.tex"
>         assertTrue(out.toString().contains("! I can't find file 
> `\"file with spaces.tex\"'."));
>
>     }
> ===============================================================
>
> Note that Exec has both
>
> [ bibtex, file with spaces.aux ]
> [ pdflatex, file with spaces.tex ]
>
> parsed correctly, but only the latter execution is properly done. Now 
> I'm not sure if it's even Exec's fault, but what strikes me is the 
> fact that with pdflatex, the execution works.
>
> Maybe I'm missing something obvious. Could you guys shed some light 
> into this problem?
>
> All the best,
>
> Paulo
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message