Hi Paulo,

it is politically probably not correct but you might checkout 
https://github.com/zeroturnaround/zt-exec 

* currently looking at the source and it looks familiar to me :-)
* it is ASL 2.0
* it is available on Maven Central
* maybe this could be the starting point for commons-exec2

Cheers,

Siegfried Goeschl

On 29 Apr 2014, at 22:52, Siegfried Goeschl <[email protected]> wrote:

> 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]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to