Summary: | Plugin disabled after Feature update | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | Boris Pruessmann <boris> | ||||
Component: | Update (deprecated - use Eclipse>Equinox>p2) | Assignee: | Christophe Elek <celek> | ||||
Status: | RESOLVED FIXED | QA Contact: | |||||
Severity: | critical | ||||||
Priority: | P1 | CC: | boris | ||||
Version: | 2.0 | ||||||
Target Milestone: | 2.0.1 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Boris Pruessmann
2002-07-22 07:27:22 EDT
Hum, this should work fine Can you pos the testcase ? (i can try to recreate it, but the exact same testcase will 1) same me time ;-) 2) same more time if I cannot reproduce it with my testcase ;-) sorry, but i can't provide the plugins used. But it's really that simple ;) - if your test case doesn't work, I can try to create one from scratch for you. Well, I tried ;-) I got 2 features RedDot 1.0.0 -> plugin 1.0.0 RedDot 1.0.1 -> plugin 1.0.0 I install RedDot 1.0.0, I can see Feature 1.0.0 and plugin 1.0.0 from Help I update to RedDot 1.0.1, I can see Feature 1.0.1 and plugin 1.0.0 from Help Okay, you've won. I have to admit that it's a little more complicated issue than I thought in first place: you need three plugins. Everything works fine as long as you only have installed two versions of the feature (meaning: two installed, one active in the configuration). If you install the third one, after Eclipse has restarted the active feature shows an error icon in the Update Manager. Status: The feature is not configured properly. No plugin: "..." included at runtime. I attached a stripped down update site for you. (Content has been stripped off the plugins except for the plugin.xml/plugin.properties). Created attachment 1722 [details]
Update site for reproducing the bug
Reproduced, boost priority and severity Finally found it ;-) the calculation of included/excluded plugin is a delat between the included of the enable feature and the excluded of the disable feature. In this scenario, the calculation found 2 excluded plugins instead of realizing they were the same. So the delta always kept one. Changed the code to use a Set instead of a List for excluded plugins. Tested with own testcase. Provide in 2.0.1 stream |