Message8647

Author jeff.allen
Recipients jeff.allen
Date 2014-06-15.08:47:25
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1402822046.35.0.526056401614.issue2165@psf.upfronthosting.co.za>
In-reply-to
Content
Launching a sub-process is unreliable and fails during regression tests. A simple example is:

>>> import subprocess, sys, os
>>> sys.executable
'C:\\Users\\Jeff\\Documents\\Eclipse\\jython-trunk\\dist\\bin\\jython.bat'
>>> subprocess.call([sys.executable, '-V'])
The input line is too long.
:classpathDefined
 was unexpected at this time.
255

The message is from cmd.exe. The label is mostly a red herring, but it is a bit of the jython.bat script just after the java command. This command is very long, and it's mostly to do with JAR files:
>>> len(os.environ["_FULL_CMD"])
4371
>>> os.environ["_FULL_CMD"].count(".jar")
52

This doesn't yet fail in my integration spot, which has a shorter path, but I don't accept that the path to my Eclipse workbench is abnormally long. Users will have the same problem I think.

We get the class path in this command by enumerating dist/javalib. The regrtest runs ok if I delete from there those JARs I suspect are superfluous (old ANTLR JARs, other platform JFFI JARs). However, I worry there may be some tool that needs them. But we could be smarter building the javalib directory.

Nowadays, Java accepts a wildcard in its class path: but we'd need Jython to catch up with that idea, wouldn't we?
History
Date User Action Args
2014-06-15 08:47:26jeff.allensetrecipients: + jeff.allen
2014-06-15 08:47:26jeff.allensetmessageid: <1402822046.35.0.526056401614.issue2165@psf.upfronthosting.co.za>
2014-06-15 08:47:26jeff.allenlinkissue2165 messages
2014-06-15 08:47:25jeff.allencreate