Message8250

Author jeff.allen
Recipients jeff.allen, sowmyalakkappa
Date 2014-03-09.09:05:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1394355937.97.0.871554763589.issue2063@psf.upfronthosting.co.za>
In-reply-to
Content
I've been experimenting with this on 2.7b and with other Java versions. Java 6u45 fails in this way but 7u45 passes.

There are good release notes about this for 7u21, and in 7u25 Oracle introduced a property to suppress the fussy behaviour.
http://www.oracle.com/technetwork/java/javase/7u25-relnotes-1955741.html

6u45 is roughly contemporary with 7u21 and has the same check.
http://www.oracle.com/technetwork/java/javase/6u45-relnotes-1932876.html

The puzzle, then, is why these tests pass on 7u45.

subprocess.py does an apparently correct job of looking for special characters and escaping them to conform to the Windows runtime API. The problem may be (may have been) that the new feature in ProcessBuilder for Windows did not take proper account of the escapes. Stepping through ProcessBuilderImpl in 6u45, that seems to be the case.

Oracle appear to have had second thoughts about this checking. Since 7u40 it is now in effect only when a security manager is set. The small print of the release notes for 6u40 leads to:
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8016046

It is perhaps still an issue for applications that use a security manager, and cannot choose (at the application level) to use the CMD /C form. But I'm not sure we should force use of CMD /C in the library, since this is meant to be under client control through the shell argument to subprocess.call() and Popen().
History
Date User Action Args
2014-03-09 09:05:37jeff.allensetmessageid: <1394355937.97.0.871554763589.issue2063@psf.upfronthosting.co.za>
2014-03-09 09:05:37jeff.allensetrecipients: + jeff.allen, sowmyalakkappa
2014-03-09 09:05:37jeff.allenlinkissue2063 messages
2014-03-09 09:05:36jeff.allencreate