You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2012/05/25 19:15:23 UTC

[jira] [Updated] (FELIX-3465) Multi root resolve operations may cause duplicate blame chains to be created

     [ https://issues.apache.org/jira/browse/FELIX-3465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard S. Hall updated FELIX-3465:
-----------------------------------

    Attachment: FELIX-3465-FIX.txt

The regression is caused by the fact that the original patch not only prevents duplicate package space calculations, it also prevents valid package space calculations.

This is because we preliminarily calculate exported packages for candidates and put them into the package space map, but the associated package space isn't fully calculated yet. The original patch prevents these partially calculated packages spaces from being fully calculated.

I've attached a patch to remedy this situation by adding a boolean to the Packages object to indicate whether it is fully calculated or not. Not very elegant, but I can't think of anything better.
                
> Multi root resolve operations may cause duplicate blame chains to be created
> ----------------------------------------------------------------------------
>
>                 Key: FELIX-3465
>                 URL: https://issues.apache.org/jira/browse/FELIX-3465
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework, Resolver
>    Affects Versions: framework-4.0.2
>         Environment: All
>            Reporter: Thomas Watson
>            Assignee: Richard S. Hall
>             Fix For: framework-4.2.0
>
>         Attachments: 3465.txt, FELIX-3465-FIX.txt
>
>
> I am using the resolver as a "multi-root" resolver in order to resolve all my resources in one pass.  This may cause org.apache.felix.resolver.ResolverImpl.calculatePackageSpaces to be called multiple multiple times for the same resource if it is required by multiple resources in the set of resources that is being resolved.  This causes an artificial explosion of blame candidates when trying to determine a consistent class space solution.  Ultimately this leads to a very long resolution process or worse case an out of memory error.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira