[ https://issues.apache.org/jira/browse/CB-9971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15000849#comment-15000849 ]
ASF GitHub Bot commented on CB-9971: ------------------------------------ Github user dblotsky commented on a diff in the pull request: https://github.com/apache/cordova-android/pull/240#discussion_r44566177 --- Diff: bin/templates/cordova/lib/builders/GradleBuilder.js --- @@ -211,3 +209,46 @@ module.exports = GradleBuilder; function isAutoGenerated(file) { return fs.existsSync(file) && fs.readFileSync(file, 'utf8').indexOf(MARKER) > 0; } + +/** + * A special superspawn-like implementation, required to workaround the issue + * with java printing some necessary information to stderr instead of stdout. + * This function redirects all stderr messages to current process stdout. See + * https://issues.apache.org/jira/browse/CB-9971 for explanation. + * + * @param {String} cmd A command to spawn + * @param {String[]} args Command arguments. Note that on Windows arguments + * will be concatenated into string and passed to 'cmd.exe' along with '/s' + * and '/c' swithces for proper space-in-path handling + * + * @return {Promise} A promise, rejected with error message, if + * underlying command exits with nonzero exit code, fulfilled otherwise + */ +function spawnWithStderrRedirect(cmd, args) { + return Q.Promise(function (resolve, reject) { + // Work around spawn not being able to find .bat files. + var opts = { stdio: [0,1,1] }; + if (process.platform === 'win32') { + var joinedArgs = [cmd] + .concat(args) + .map(function(a){ + if (/^[^"].* .*[^"]/.test(a)) return '"' + a + '"'; + return a; + }) + .join(' '); + + args = ['/s', '/c'].concat('"' + joinedArgs + '"')/*, '"' + [cmd].concat(args).map(function(a){if (/^[^"].* .*[^"]/.test(a)) return '"' + a + '"'; return a;}).join(' ')+'"']*/; + cmd = 'cmd'; + opts.windowsVerbatimArguments = true; + } + require('child_process') --- End diff -- Please put the `require` at the top of the file. > Cordova outputs "Picked up _JAVA_OPTIONS" in stderr > --------------------------------------------------- > > Key: CB-9971 > URL: https://issues.apache.org/jira/browse/CB-9971 > Project: Apache Cordova > Issue Type: Bug > Components: Android > Affects Versions: 5.0.0 > Environment: Windows, Tools for Apache Cordova in Visual Studio > Cordova 5.4.0 > Reporter: Michael Braude > Assignee: Vladimir Kotikov > Priority: Critical > Labels: easyfix, windows, > Original Estimate: 2h > Remaining Estimate: 2h > > Starting with version 5.4.0, Cordova now outputs "Picked up _JAVA_OPTIONS: > -Xmx512M" to stderr. This breaks clients such as Visual Studio because we > interpret messages in stderr to be errors, and this is not an error. So the > result is that we show deploy failures to the dev when there are no errors. > See this for customer impact: > http://stackoverflow.com/questions/33603167/vs2015-build-with-cordova-cli5-4-0-shows-deployment-errors > We can work around this in Visual Studio by using special casing, but Cordova > needs to output this in stdout like it did in previous versions -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org