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: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]