[
https://issues.apache.org/jira/browse/SLING-4026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14167037#comment-14167037
]
JBodkin commented on SLING-4026:
--------------------------------
I wasn't aware that the Sling Models implementation created a new service each
time you registered a new @SlingModel, I had wrongly assumed you had one
AdaptorFactory that was used.
Secondly, the race condition wasn't easy to spot either, on my machine, the
service was able to immediately execute and I didn't see the race condition. On
one of my colleague's machine, he experienced the race condition each time.
> Sling Models Race Condition
> ---------------------------
>
> Key: SLING-4026
> URL: https://issues.apache.org/jira/browse/SLING-4026
> Project: Sling
> Issue Type: Bug
> Components: Extensions
> Affects Versions: Sling Models Implementation 1.1.0
> Reporter: JBodkin
> Labels: models
>
> During initialization of a bundle, it is possible to encounter a race
> condition in which the BundleTrackerCustomizer::addingBundle(Bundle bundle,
> BundleEvent event) is triggered after the bundle has begun initialization of
> a immediate component.
> {code:java}
> @Component(immediate = true)
> @Service
> public class ExampleImpl {
> @Activate
> public void activate(ComponentContext context) {
> Resource resource = ....
> // Race condition possible here... Could be executed before the
> BundleTracker (ModelPackageBundleListener)
> SlingModelExample example = resource.adaptTo(SlingModelExample);
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)