[
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: [email protected]
For additional commands, e-mail: [email protected]