Bug 25202

Summary: Peer features are disabled if an optional feature is missing
Product: [Eclipse Project] Platform Reporter: Steve Francisco <stephen.francisco>
Component: Update (deprecated - use Eclipse>Equinox>p2)Assignee: Christophe Elek <celek>
Status: RESOLVED FIXED QA Contact:
Severity: critical    
Priority: P3    
Version: 2.0.2   
Target Milestone: 2.0.2   
Hardware: All   
OS: All   
Whiteboard:

Description Steve Francisco CLA 2002-10-22 12:22:08 EDT
Here's an example:
FtrA:
    <includes id="FtrB" version="5.0.1"/>
    <includes id="FtrC" version="1.3.5"/>
    <includes id="FtrOptional" optional="true" version="5.0.2"/>

If FtrOptional is not found, then FtrB and FtrC should still get configured.
However it seems that the peers are not configured in this case.
The result is that the plugins defined by FtrB & FtrC are gone and all other
plugins in the system that needed those show errors due to the missing 
prereq's.
Comment 1 Christophe Elek CLA 2002-10-22 14:56:17 EDT
Upon first optimistic reconciliation the reconciler stoped processing if one
include child feature was not available even if it was optional.

Added code to process the error instead of stopping the execution and then
continue enabling the rest of the included children.

Test in tomorrow's integration build

code in SiteReconciler.expandFeatures()
Comment 2 Christophe Elek CLA 2002-10-23 06:18:35 EDT
Reproduced with Root 1.0.0 testcase

Install Root 1.0.0 and Bogus 1.0.0 as optional
Shutdown
Delete .config so the next start will be a complete reconciliation
Start
Bogus 1.0.0 is disable

Verified the change explained fixes the problem. Released in today's build.