Vladimir Kotikov created CB-7671:
------------------------------------

             Summary: cordova fails to uninstall plugin when its' dependencies 
is not installed.
                 Key: CB-7671
                 URL: https://issues.apache.org/jira/browse/CB-7671
             Project: Apache Cordova
          Issue Type: Bug
          Components: CordovaLib, Plugman
            Reporter: Vladimir Kotikov


Cordova-lib from latest master 
(https://github.com/apache/cordova-lib/commit/1df6bb67bfc8906d81cafd0f4d9c61fcacfc29c9)
 fails to remove a plugin which have an unsatisfied dependencies.

Currently cordova doesn't install dependencies for to-level plugins, if no 
platforms are added to application. In this case uninstalling a newly installed 
plugin will cause following error:
{noformat}
Error: ENOENT, no such file or directory 
'd:\PROJECTS\Temp\test-file\plugins\org.apache.cordova.file\plugin.xml'
    at Object.fs.openSync (fs.js:427:18)
    at Object.fs.readFileSync (fs.js:284:15)
    at Object.module.exports.parseElementtreeSync 
(d:\cordova\cordova-lib\cordova-lib\src\util\xml-helpers.js:121:27)
    at findDependencies 
(d:\cordova\cordova-lib\cordova-lib\src\plugman\uninstall.js:122:34)
    at d:\cordova\cordova-lib\cordova-lib\src\plugman\uninstall.js:127:17
    at Array.forEach (native)
    at findDependencies 
(d:\cordova\cordova-lib\cordova-lib\src\plugman\uninstall.js:124:14)
    at Function.module.exports.uninstallPlugin 
(d:\cordova\cordova-lib\cordova-lib\src\plugman\uninstall.js:131:5)
    at d:\cordova\cordova-lib\cordova-lib\src\cordova\plugin.js:198:54
    at _fulfilled 
(d:\cordova\cordova-lib\cordova-lib\node_modules\q\q.js:798:54)
{noformat}

The problem is in newly introduced function {{findDependencies}} in 
plugman/uninstall.js module 
(https://github.com/apache/cordova-lib/commit/1df6bb67bfc8906d81cafd0f4d9c61fcacfc29c9#diff-3c81061410a41f357169174bd1bfa5c0L123)
 which doesn't checks if plugin's config.xml file is exists.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to