[ 
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

Reply via email to