You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Thomas Watson (JIRA)" <ji...@apache.org> on 2018/12/12 16:41:00 UTC

[jira] [Commented] (FELIX-5998) NPE in Resolver checkPackageSpaceConsistency

    [ https://issues.apache.org/jira/browse/FELIX-5998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16719165#comment-16719165 ] 

Thomas Watson commented on FELIX-5998:
--------------------------------------

I see at least one of two things that could be going on.  First off, I think the NPE must be happening because at line 1311 of ResolerImpl the following is getting a null assigned to the pkgs variable
{code:java}
Packages pkgs = resourcePkgMap.get(resource);
{code}

This is either happening because:
# ResolverImpl.calculatePackageSpaces(ResolveSession, Candidates, Collection<Resource>) is not properly creating the Map in your case and leaving a resource out of the map.
# Somehow you have an implementation of Capability which is returning null from the method Capability.getResource() and when we use the null as a key in the map we get a null value back.

> NPE in Resolver checkPackageSpaceConsistency
> --------------------------------------------
>
>                 Key: FELIX-5998
>                 URL: https://issues.apache.org/jira/browse/FELIX-5998
>             Project: Felix
>          Issue Type: Task
>          Components: Resolver
>    Affects Versions: resolver-2.0.0
>            Reporter: Pierre De Rop
>            Priority: Major
>
> I'm using a custom ResolveContext implementation that I've written in order to calculate the dependencies of some applications which bundles are all centralized in an OBR. Now, using the Felix framework 6.0.1 (and the Resolver 2.0.0 that is provided by the framework), I sometimes get an NPE in the ResolverImpl.checkPackageSpaceConsistency, line 1319). 
> My OBR is not yet fully "curated" (I still have some " Candidate permutation failed due to a conflict between imports" logs when enabling felix.log.level=4). So I'm cleaning the OBR gradually, but now, sometimes  I see this NPE while resolving :
> {code:java}
> java.lang.NullPointerException
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1319)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1500)
> at org.apache.felix.resolver.ResolverImpl.checkConsistency(ResolverImpl.java:622)
> at org.apache.felix.resolver.ResolverImpl.findValidCandidates(ResolverImpl.java:575)
> at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:438)
> at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:421)
> at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:414)
> at com.nokia.as.microfeatures.bundlerepository.impl.BundleRepositoryImpl.findResolution(BundleRepositoryImpl.java:257)
> {code}
> The bad thing is that I'm not able to reproduce the NPE when I enable felix.log.level=4, and the NPE is difficult to reproduce.
> Could someone please give me a clue about what could produce this NPE ? Are there some traces which could be added in order to figure out what is the problem ? Then is there a fix which should be done in order to avoid this null pointer ?
> If I fully cleanup my OBR, maybe I won't have anymore the NPE, but I just wanted to report it here.
> thank you.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)