Hi Paulo, to be honest I’m puzzled as well - I think I need to play with your example to understand the difference of the invocations
I keep you in the loop :-) Cheers, Siegfried Goeschl PS: I also think that commons-exec2 running on JDK 1.7+ would be a nice pet project of mine On 29 Apr 2014, at 18:25, Paulo Roberto Massa Cereda <[email protected]> wrote: > Hi Siegfried, hey guys! > > Now I'm more puzzled after running the following test with ProcessBuilder: > > ************************** > @Test > public void testProcessBuilder() throws IOException { > > ProcessBuilder bibtex = new ProcessBuilder(); > bibtex.command(new String[]{"bibtex", "file with spaces.aux"}); > Process process = bibtex.start(); > > InputStream inputStream = process.getInputStream(); > InputStreamReader inputStreamReader = new InputStreamReader(inputStream); > BufferedReader bufferedReader = new BufferedReader(inputStreamReader); > String currentLine; > while ((currentLine = bufferedReader.readLine()) != null) { > System.out.println(currentLine); > } > > try { > int exitValue = process.waitFor(); > System.out.println(exitValue); > } catch (InterruptedException e) { } > } > ************************** > > I got the expected execution! vvv > > ************************** > > ------------------------------------------------------- > T E S T S > ------------------------------------------------------- > Running cereda.tests.ProcessBuilderTest > This is BibTeX, Version 0.99d (TeX Live 2013) > The top-level auxiliary file: file with spaces.aux > The style file: plain.bst > Database file #1: master.bib > Warning--I didn't find a database entry for "with:1977" > (There was 1 warning) > 0 > Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.61 sec > > ************************** > > I'm really lost now. And it's still Tuesday, so no excuses for getting a beer > today. :) > > All the best, > > Paulo > > Em 28-04-2014 15:34, Siegfried Goeschl escreveu: >> Hi Paulo, >> >> I’m also a bit puzzled :-) >> >> 1) Can you remove the “.aux” extension when invoking “bibtex”? >> 2) Please check >> http://tex.stackexchange.com/questions/112606/how-to-make-space-recognized-in-bib-filename-when-setting-bibliography >> >> Cheers, >> >> Siegfried Goeschl >> >> >> On 24 Apr 2014, at 15:36, Paulo Roberto Massa Cereda >> <[email protected]> wrote: >> >>> Hello Siegfried, >>> >>>> sorry for the next dumb question (but I'm actually quite good at it) >>> >>> Don't say such thing, you are helping me a lot with these questions. :) >>> >>> There we go: >>> >>>> * what is the result of the failed "bibtex" invocation? >>> >>> The message prompted is >>> >>> ----------------- >>> I couldn't open file name `"file with spaces.aux".aux' >>> ----------------- >>> >>> And the program returns 1 as exit value. >>> >>> If I copy "file with spaces.aux" and rename it to "filewithnospaces.aux", I >>> get >>> >>> ----------------- >>> This is BibTeX, Version 0.99d (TeX Live 2013) >>> The top-level auxiliary file: filewithnospaces.aux >>> The style file: plain.bst >>> Database file #1: master.bib >>> Warning--I didn't find a database entry for "with:1977" >>> (There was 1 warning) >>> ----------------- >>> >>> And the program returns 0 as exit value. >>> >>>> * is "bibtex" a native binary or a shell script? >>> >>> Native binary. >>> >>> paulo@alexandria ~$ file `which bibtex` >>> /opt/texbin/bibtex: ELF 32-bit LSB executable, Intel 80386, version 1 >>> (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped >>> >>>> * depending on the error - can you replace the "bibtex" with a shell >>>> script to dump the current working directory - sometime the things >>>> are not executing where you expect them (just battled Java-native >>>> launchers where the current working directory can't be set >>> >>> I replaced bibtex with a script that prints $PWD and the provided >>> arguments. I got >>> >>> Current directory ($PWD): >>> /home/paulo/Projetos/commons-exec-report >>> >>> Arguments: >>> "file with spaces.aux" >>> Done. >>> >>> with 0 as exit value. >>> >>> Quite odd, isn't it? :) It's driving me crazy. Well, crazier. :P >>> >>> All the best, >>> >>> Paulo >>> >>> Em 24-04-2014 10:14, Siegfried Goeschl escreveu: >>>> Hi Pauolo, >>>> >>>> sorry for the next dumb question (but I'm actually quite good at it) >>>> >>>> * what is the result of the failed "bibtex" invocation? >>>> >>>> * is "bibtex" a native binary or a shell script? >>>> >>>> * depending on the error - can you replace the "bibtex" with a shell >>>> script to dump the current working directory - sometime the things are >>>> not executing where you expect them (just battled Java-native launchers >>>> where the current working directory can't be set >>>> >>>> Cheers, >>>> >>>> Siegfried Goeschl >>>> >>>> On 24.04.14 15:07, Paulo Roberto Massa Cereda wrote: >>>>> Hello Siegfried! >>>>> >>>>> Wow, thanks for the fast response. :) >>>>> >>>>> Deeply sorry, I forgot to mention the environment. I'm running my code >>>>> under Linux (Fedora 20, Java 1.7.0) and MacOSX (Mavericks, 10.9.2). I >>>>> was unaware of the .aux thing under Windows, it's good to know about it; >>>>> TeX tools use .aux files all the time, so it might be interesting to >>>>> investigate some side effects from it. :) >>>>> >>>>> Apparently, the error persists with other tool named makeglossaries that >>>>> also uses this .aux file. I'm starting to get scared. :) >>>>> >>>>> All the best, >>>>> >>>>> Paulo >>>>> >>>>> Em 24-04-2014 09:50, Siegfried Goeschl escreveu: >>>>>> 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] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
