Hi Colin,

Sorry, this was lost in my SCR radar :-(

Can you please provide your fix in a JIRA ? That would be very nice.

Thanks and Regards
Felix

Colin Fleming schrieb:
> Hi all,
> 
> Can anyone comment on this? We made a fix which seems to work for us, but
> I'd like to make sure this seems like a bug before filing a report.
> 
> Cheers,
> Colin
> 
> 2008/12/19 Colin Fleming <[email protected]>
> 
>> Hi all,
>>
>> We're trying to migrate our application from Knopflerfish to Felix at the
>> moment. It's almost working, but we've had a lot of problems with the
>> following exception:
>>
>>  INFO ERROR: EventDispatcher: Error during dispatch.
>> (java.lang.IllegalStateException: Cannot get the Service Registration, owned
>> by Thread[SCR Component Actor,5,main])
>>  WARN java.lang.IllegalStateException: Cannot get the Service Registration,
>> owned by Thread[SCR Component Actor,5,main]
>>  WARN     at
>> org.apache.felix.scr.impl.AbstractComponentManager.lockServiceRegistration(AbstractComponentManager.java:782)
>>  WARN     at
>> org.apache.felix.scr.impl.AbstractComponentManager.unregisterComponentService(AbstractComponentManager.java:709)
>>  WARN     at
>> org.apache.felix.scr.impl.AbstractComponentManager.deactivateInternal(AbstractComponentManager.java:549)
>>  WARN     at
>> org.apache.felix.scr.impl.AbstractComponentManager.deactivate(AbstractComponentManager.java:238)
>>  WARN     at
>> org.apache.felix.scr.impl.AbstractComponentManager.reactivate(AbstractComponentManager.java:171)
>>  WARN     at
>> org.apache.felix.scr.impl.DependencyManager.serviceAdded(DependencyManager.java:181)
>>  WARN     at
>> org.apache.felix.scr.impl.DependencyManager.serviceChanged(DependencyManager.java:115)
>>  WARN     at
>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:765)
>>
>> This seems to have been fixed in FELIX-550. However we're still seeing it,
>> and it seems to be a problem with static references in factory components
>> which have a target specified. What seems to happen is when the factory
>> component is created, the DependencyManager correctly has the m_target field
>> set. However, when the component is activated, the getProperties() method in
>> ComponentFactoryImpl doesn't add the properties for the target attributes of
>> references as ImmediateComponentManager does. Then, when setTargetFilter on
>> the DependencyManager is called, its target parameter is null (because the
>> property isn't correctly set) and the SCR interprets this as a change in the
>> target. Since the reference is static, the component is deactivated and
>> reactivated incorrectly.
>>
>> As far as I can tell, the incorrect part is that the reference target
>> properties are not set for factory components. I can't see anything in 112.6
>> of the spec which would imply this should not happen. I guess the fix would
>> be to set those properties in the ComponentFactoryImpl as it's done in the
>> ImmediateComponentManager?
>>
>> Cheers,
>> Colin
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to