You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "sharanggupta (via GitHub)" <gi...@apache.org> on 2026/10/15 17:33:03 UTC
[PR] FELIX-6817 Find no resources in a closed bundle revision [felix-dev]
sharanggupta opened a new pull request, #577:
URL: https://github.com/apache/felix-dev/pull/577
Fixes [FELIX-6817](https://issues.apache.org/jira/browse/FELIX-6817).
The `NullPointerException` in the report (`Content.hasEntry(String)` called on a `null` element of the content path, from `BundleRevisionImpl.getResourceLocal`) happens when a resource lookup through the class loader of a wiring reaches the revision after a refresh has closed it.
`BundleWiringImpl.findClassOrResourceByDelegation()` checks that the wiring is not disposed before it calls `BundleClassLoader.findResource()`, but a concurrent refresh can close the revision in between. `close()` sets the content to `null` and drops the content path. `getContentPath()` then rebuilds the path from the `null` content: `MultiReleaseContent.wrap()` swallows the resulting exception and returns `null`, so the cached path is a list holding `null`, and every later lookup on that revision fails the same way.
`initializeContentPath()` now returns an empty content path for a closed revision, so the lookup finds nothing, like `getResourcesLocal()` already does when there is no content path. The empty path is not cached, because a refresh closes all revisions of the bundle and then reopens the current one with `resetContent()`, after which the path must be computed again.
**Test:** `ResourceLoadingTest.resourceLoadingFromClosedRevisionFindsNothing` keeps the class loader of a bundle's wiring, updates and refreshes the bundle, and then calls `findResource()` and `findResources()` on the old class loader, which is the state the race leads to. On `master` it fails with the `NullPointerException` from the report; with the change it passes, and `mvn clean verify` of the framework module passes locally.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@felix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] FELIX-6817 Find no resources in a closed bundle revision [felix-dev]
Posted by "paulrutter (via GitHub)" <gi...@apache.org>.
paulrutter merged PR #577:
URL: https://github.com/apache/felix-dev/pull/577
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@felix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org