Uploaded image for project: 'Apache Cordova'
  1. Apache Cordova
  2. CB-7457

cordova plugin add --searchpath does not recurse through subfolders when a plugin.xml is malformed in one of them

    XMLWordPrintableJSON

Details

    Description

      This can be demonstrated by using the createmobilespec.js script in cordova-mobile-spec or the repro steps below.

      Using local versions:
      cordova-cli from git: 3.6.0-0.2.10-dev
      cordova-plugman from git: 0.22.7-dev
      cordova-lib (linked locally - tagged at 7c0a701da98ebe89709cbaf97b3ca1535c6679b1)

      Repro steps:

      $ cordova create Foo
      $ cd Foo
      $ cordova platform add ios
      $ cordova plugin add org.apache.cordova.device --searchpath /path/to/folder/containing/all/plugin-repos
      
      (where /path/to/folder/containing/all/plugin-repos is the mega folder containing all plugin git repos)
      

      Error (essentially, plugin not found):

      Calling plugman.fetch on plugin "org.apache.cordova.device"
      Error: Unencoded <
      Line: 105
      Column: 2
      Char: <
          at error (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/node_modules/sax/lib/sax.js:347:8)
          at strictFail (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/node_modules/sax/lib/sax.js:364:22)
          at Object.write (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/node_modules/sax/lib/sax.js:671:11)
          at XMLParser.feed (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/lib/parsers/sax.js:48:15)
          at ElementTree.parse (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/lib/elementtree.js:263:10)
          at Object.exports.XML (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/node_modules/elementtree/lib/elementtree.js:593:13)
          at Object.module.exports.parseElementtreeSync (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/src/util/xml-helpers.js:126:38)
          at new PluginInfo (/Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/src/PluginInfo.js:213:37)
          at /Users/shaz/Documents/Git/Apache/cordova-lib/cordova-lib/src/PluginInfo.js:275:17
          at Array.forEach (native)
      

      If I do --searchpath with the exact folder containing the plugin, it works.

      Attachments

        Activity

          People

            shazron Shazron Abdullah
            shazron Shazron Abdullah
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: